From 9e37cbbca8fe5d763997d37314ca368d57ca28bb Mon Sep 17 00:00:00 2001 From: Jikoo Date: Sun, 28 Apr 2019 20:37:05 -0400 Subject: [PATCH] Prepare for 1.14 To continue providing renamed ender chests/player inventories we can no longer just provide an Inventory, a full InventoryView is required. To avoid confusion the old method has been removed entirely, leading to a major API revision bump. --- api/pom.xml | 2 +- .../java/com/lishid/openinv/IOpenInv.java | 76 ++++-------- .../openinv/internal/IAnySilentContainer.java | 15 +-- .../openinv/internal/IInventoryAccess.java | 12 +- .../openinv/internal/ISpecialEnderChest.java | 14 ++- .../internal/ISpecialPlayerInventory.java | 14 ++- assembly/pom.xml | 2 +- common/pom.xml | 4 +- .../openinv/internal/IPlayerDataManager.java | 15 ++- .../java/com/lishid/openinv/util/Cache.java | 5 +- .../lishid/openinv/util/InternalAccessor.java | 11 +- internal/1_4_5/pom.xml | 4 +- .../internal/v1_4_5/AnySilentContainer.java | 78 ++++++------ .../internal/v1_4_5/InventoryAccess.java | 14 +-- .../internal/v1_4_5/PlayerDataManager.java | 31 +++-- .../internal/v1_4_5/SilentContainerChest.java | 2 +- .../internal/v1_4_5/SpecialEnderChest.java | 43 +++++-- .../v1_4_5/SpecialPlayerInventory.java | 35 ++++-- internal/1_4_6/pom.xml | 4 +- .../internal/v1_4_6/AnySilentContainer.java | 78 ++++++------ .../internal/v1_4_6/InventoryAccess.java | 14 +-- .../internal/v1_4_6/PlayerDataManager.java | 31 +++-- .../internal/v1_4_6/SilentContainerChest.java | 2 +- .../internal/v1_4_6/SpecialEnderChest.java | 43 +++++-- .../v1_4_6/SpecialPlayerInventory.java | 35 ++++-- internal/pom.xml | 2 +- internal/v1_10_R1/pom.xml | 4 +- .../internal/v1_10_R1/AnySilentContainer.java | 38 +++--- .../internal/v1_10_R1/InventoryAccess.java | 14 +-- .../internal/v1_10_R1/PlayerDataManager.java | 34 +++--- .../internal/v1_10_R1/SpecialEnderChest.java | 40 +++++-- .../v1_10_R1/SpecialPlayerInventory.java | 38 ++++-- internal/v1_11_R1/pom.xml | 4 +- .../internal/v1_11_R1/AnySilentContainer.java | 46 ++++--- .../internal/v1_11_R1/InventoryAccess.java | 14 +-- .../internal/v1_11_R1/PlayerDataManager.java | 34 +++--- .../internal/v1_11_R1/SpecialEnderChest.java | 40 +++++-- .../v1_11_R1/SpecialPlayerInventory.java | 38 ++++-- internal/v1_12_R1/pom.xml | 4 +- .../internal/v1_12_R1/AnySilentContainer.java | 36 +++--- .../internal/v1_12_R1/InventoryAccess.java | 14 +-- .../internal/v1_12_R1/PlayerDataManager.java | 34 +++--- .../internal/v1_12_R1/SpecialEnderChest.java | 40 +++++-- .../v1_12_R1/SpecialPlayerInventory.java | 38 ++++-- internal/v1_13_R1/pom.xml | 4 +- .../internal/v1_13_R1/AnySilentContainer.java | 28 ++--- .../internal/v1_13_R1/InventoryAccess.java | 14 +-- .../internal/v1_13_R1/PlayerDataManager.java | 32 +++-- .../internal/v1_13_R1/SpecialEnderChest.java | 40 +++++-- .../v1_13_R1/SpecialPlayerInventory.java | 40 +++++-- internal/v1_13_R2/pom.xml | 4 +- .../internal/v1_13_R2/AnySilentContainer.java | 32 ++--- .../internal/v1_13_R2/InventoryAccess.java | 9 +- .../internal/v1_13_R2/PlayerDataManager.java | 22 ++-- .../internal/v1_13_R2/SpecialEnderChest.java | 48 ++++++-- .../v1_13_R2/SpecialPlayerInventory.java | 44 +++++-- internal/v1_4_R1/pom.xml | 4 +- .../internal/v1_4_R1/AnySilentContainer.java | 78 ++++++------ .../internal/v1_4_R1/InventoryAccess.java | 14 +-- .../internal/v1_4_R1/PlayerDataManager.java | 31 +++-- .../v1_4_R1/SilentContainerChest.java | 2 +- .../internal/v1_4_R1/SpecialEnderChest.java | 43 +++++-- .../v1_4_R1/SpecialPlayerInventory.java | 35 ++++-- internal/v1_5_R2/pom.xml | 4 +- .../internal/v1_5_R2/AnySilentContainer.java | 78 ++++++------ .../internal/v1_5_R2/InventoryAccess.java | 14 +-- .../internal/v1_5_R2/PlayerDataManager.java | 31 +++-- .../v1_5_R2/SilentContainerChest.java | 2 +- .../internal/v1_5_R2/SpecialEnderChest.java | 43 +++++-- .../v1_5_R2/SpecialPlayerInventory.java | 35 ++++-- internal/v1_5_R3/pom.xml | 4 +- .../internal/v1_5_R3/AnySilentContainer.java | 78 ++++++------ .../internal/v1_5_R3/InventoryAccess.java | 14 +-- .../internal/v1_5_R3/PlayerDataManager.java | 31 +++-- .../v1_5_R3/SilentContainerChest.java | 2 +- .../internal/v1_5_R3/SpecialEnderChest.java | 43 +++++-- .../v1_5_R3/SpecialPlayerInventory.java | 35 ++++-- internal/v1_6_R1/pom.xml | 4 +- .../internal/v1_6_R1/AnySilentContainer.java | 78 ++++++------ .../internal/v1_6_R1/InventoryAccess.java | 14 +-- .../internal/v1_6_R1/PlayerDataManager.java | 31 +++-- .../v1_6_R1/SilentContainerChest.java | 2 +- .../internal/v1_6_R1/SpecialEnderChest.java | 43 +++++-- .../v1_6_R1/SpecialPlayerInventory.java | 35 ++++-- internal/v1_6_R2/pom.xml | 4 +- .../internal/v1_6_R2/AnySilentContainer.java | 78 ++++++------ .../internal/v1_6_R2/InventoryAccess.java | 14 +-- .../internal/v1_6_R2/PlayerDataManager.java | 31 +++-- .../v1_6_R2/SilentContainerChest.java | 2 +- .../internal/v1_6_R2/SpecialEnderChest.java | 43 +++++-- .../v1_6_R2/SpecialPlayerInventory.java | 35 ++++-- internal/v1_6_R3/pom.xml | 4 +- .../internal/v1_6_R3/AnySilentContainer.java | 78 ++++++------ .../internal/v1_6_R3/InventoryAccess.java | 14 +-- .../internal/v1_6_R3/PlayerDataManager.java | 31 +++-- .../v1_6_R3/SilentContainerChest.java | 2 +- .../internal/v1_6_R3/SpecialEnderChest.java | 43 +++++-- .../v1_6_R3/SpecialPlayerInventory.java | 35 ++++-- internal/v1_7_R1/pom.xml | 4 +- .../internal/v1_7_R1/AnySilentContainer.java | 77 ++++++------ .../internal/v1_7_R1/InventoryAccess.java | 14 +-- .../internal/v1_7_R1/PlayerDataManager.java | 31 +++-- .../v1_7_R1/SilentContainerChest.java | 2 +- .../internal/v1_7_R1/SpecialEnderChest.java | 43 +++++-- .../v1_7_R1/SpecialPlayerInventory.java | 35 ++++-- internal/v1_7_R2/pom.xml | 4 +- .../internal/v1_7_R2/AnySilentContainer.java | 77 ++++++------ .../internal/v1_7_R2/InventoryAccess.java | 14 +-- .../internal/v1_7_R2/PlayerDataManager.java | 31 +++-- .../v1_7_R2/SilentContainerChest.java | 2 +- .../internal/v1_7_R2/SpecialEnderChest.java | 43 +++++-- .../v1_7_R2/SpecialPlayerInventory.java | 35 ++++-- internal/v1_7_R3/pom.xml | 4 +- .../internal/v1_7_R3/AnySilentContainer.java | 76 ++++++------ .../internal/v1_7_R3/InventoryAccess.java | 14 +-- .../internal/v1_7_R3/PlayerDataManager.java | 31 +++-- .../v1_7_R3/SilentContainerChest.java | 2 +- .../internal/v1_7_R3/SpecialEnderChest.java | 43 +++++-- .../v1_7_R3/SpecialPlayerInventory.java | 35 ++++-- internal/v1_7_R4/pom.xml | 4 +- .../internal/v1_7_R4/AnySilentContainer.java | 77 ++++++------ .../internal/v1_7_R4/InventoryAccess.java | 14 +-- .../internal/v1_7_R4/PlayerDataManager.java | 31 +++-- .../v1_7_R4/SilentContainerChest.java | 2 +- .../internal/v1_7_R4/SpecialEnderChest.java | 43 +++++-- .../v1_7_R4/SpecialPlayerInventory.java | 35 ++++-- internal/v1_8_R1/pom.xml | 4 +- .../internal/v1_8_R1/AnySilentContainer.java | 36 +++--- .../internal/v1_8_R1/InventoryAccess.java | 14 +-- .../internal/v1_8_R1/PlayerDataManager.java | 34 +++--- .../internal/v1_8_R1/SpecialEnderChest.java | 40 +++++-- .../v1_8_R1/SpecialPlayerInventory.java | 35 ++++-- internal/v1_8_R2/pom.xml | 4 +- .../internal/v1_8_R2/AnySilentContainer.java | 40 +++---- .../internal/v1_8_R2/InventoryAccess.java | 14 +-- .../internal/v1_8_R2/PlayerDataManager.java | 34 +++--- .../internal/v1_8_R2/SpecialEnderChest.java | 40 +++++-- .../v1_8_R2/SpecialPlayerInventory.java | 35 ++++-- internal/v1_8_R3/pom.xml | 4 +- .../internal/v1_8_R3/AnySilentContainer.java | 38 +++--- .../internal/v1_8_R3/InventoryAccess.java | 14 +-- .../internal/v1_8_R3/PlayerDataManager.java | 34 +++--- .../internal/v1_8_R3/SpecialEnderChest.java | 40 +++++-- .../v1_8_R3/SpecialPlayerInventory.java | 35 ++++-- internal/v1_9_R1/pom.xml | 4 +- .../internal/v1_9_R1/AnySilentContainer.java | 38 +++--- .../internal/v1_9_R1/InventoryAccess.java | 14 +-- .../internal/v1_9_R1/PlayerDataManager.java | 34 +++--- .../internal/v1_9_R1/SpecialEnderChest.java | 40 +++++-- .../v1_9_R1/SpecialPlayerInventory.java | 38 ++++-- internal/v1_9_R2/pom.xml | 4 +- .../internal/v1_9_R2/AnySilentContainer.java | 38 +++--- .../internal/v1_9_R2/InventoryAccess.java | 14 +-- .../internal/v1_9_R2/PlayerDataManager.java | 34 +++--- .../internal/v1_9_R2/SpecialEnderChest.java | 40 +++++-- .../v1_9_R2/SpecialPlayerInventory.java | 38 ++++-- plugin/plugin-core/pom.xml | 6 +- .../main/java/com/lishid/openinv/OpenInv.java | 112 +++++++----------- .../commands/AnyChestPluginCommand.java | 1 - .../commands/OpenEnderPluginCommand.java | 6 +- .../commands/OpenInvPluginCommand.java | 6 +- .../commands/SearchEnchantPluginCommand.java | 1 - .../commands/SearchInvPluginCommand.java | 1 - .../commands/SilentChestPluginCommand.java | 3 +- .../listeners/InventoryClickListener.java | 1 - .../listeners/InventoryCloseListener.java | 1 - .../openinv/listeners/PlayerListener.java | 1 - .../openinv/listeners/PluginListener.java | 1 - .../lishid/openinv/util/ConfigUpdater.java | 17 ++- plugin/plugin-v1_10_R1/pom.xml | 4 +- .../listeners/InventoryDragListener.java | 1 - plugin/pom.xml | 2 +- pom.xml | 10 +- 173 files changed, 2572 insertions(+), 1911 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index 18791a4..3ea7a3c 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvparent - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvapi diff --git a/api/src/main/java/com/lishid/openinv/IOpenInv.java b/api/src/main/java/com/lishid/openinv/IOpenInv.java index d8b16c4..db8919b 100644 --- a/api/src/main/java/com/lishid/openinv/IOpenInv.java +++ b/api/src/main/java/com/lishid/openinv/IOpenInv.java @@ -16,16 +16,15 @@ package com.lishid.openinv; -import javax.annotation.Nullable; - import com.lishid.openinv.internal.IAnySilentContainer; import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; - import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * Interface defining behavior for the OpenInv plugin. @@ -45,49 +44,21 @@ public interface IOpenInv { boolean disableSaving(); /** - * Gets the active ISilentContainer implementation. May return null if the server version is - * unsupported. + * Gets the active ISilentContainer implementation. * * @return the ISilentContainer * @throws IllegalStateException if the server version is unsupported */ + @NotNull IAnySilentContainer getAnySilentContainer(); /** - * Gets an ISpecialEnderChest for the given Player. Returns null if the ISpecialEnderChest could - * not be instantiated. - * - * @param player the Player - * @param online true if the Player is currently online - * @return the ISpecialEnderChest - * @throws IllegalStateException if the server version is unsupported - * @deprecated Use {@link IOpenInv#getSpecialEnderChest(Player, boolean)} - */ - @Deprecated - @Nullable - ISpecialEnderChest getEnderChest(Player player, boolean online); - - /** - * Gets an ISpecialPlayerInventory for the given Player. Returns null if the - * ISpecialPlayerInventory could not be instantiated. - * - * @param player the Player - * @param online true if the Player is currently online - * @return the ISpecialPlayerInventory - * @throws IllegalStateException if the server version is unsupported - * @deprecated Use {@link IOpenInv#getSpecialInventory(Player, boolean)} - */ - @Deprecated - @Nullable - ISpecialPlayerInventory getInventory(Player player, boolean online); - - /** - * Gets the active IInventoryAccess implementation. May return null if the server version is - * unsupported. + * Gets the active IInventoryAccess implementation. * * @return the IInventoryAccess * @throws IllegalStateException if the server version is unsupported */ + @NotNull IInventoryAccess getInventoryAccess(); /** @@ -97,7 +68,7 @@ public interface IOpenInv { * @return true if AnyChest is enabled * @throws IllegalStateException if the server version is unsupported */ - boolean getPlayerAnyChestStatus(OfflinePlayer player); + boolean getPlayerAnyChestStatus(@NotNull OfflinePlayer player); /** * Gets a unique identifier by which the OfflinePlayer can be referenced. Using the value @@ -107,16 +78,17 @@ public interface IOpenInv { * @return the identifier * @throws IllegalStateException if the server version is unsupported */ - String getPlayerID(OfflinePlayer offline); + @NotNull + String getPlayerID(@NotNull OfflinePlayer offline); /** * Gets a player's SilentChest setting. * - * @param player the OfflinePlayer + * @param offline the OfflinePlayer * @return true if SilentChest is enabled * @throws IllegalStateException if the server version is unsupported */ - boolean getPlayerSilentChestStatus(OfflinePlayer player); + boolean getPlayerSilentChestStatus(@NotNull OfflinePlayer offline); /** * Gets an ISpecialEnderChest for the given Player. @@ -127,7 +99,8 @@ public interface IOpenInv { * @throws IllegalStateException if the server version is unsupported * @throws InstantiationException if the ISpecialEnderChest could not be instantiated */ - ISpecialEnderChest getSpecialEnderChest(Player player, boolean online) throws InstantiationException; + @NotNull + ISpecialEnderChest getSpecialEnderChest(@NotNull Player player, boolean online) throws InstantiationException; /** * Gets an ISpecialPlayerInventory for the given Player. @@ -138,7 +111,8 @@ public interface IOpenInv { * @throws IllegalStateException if the server version is unsupported * @throws InstantiationException if the ISpecialPlayerInventory could not be instantiated */ - ISpecialPlayerInventory getSpecialInventory(Player player, boolean online) throws InstantiationException; + @NotNull + ISpecialPlayerInventory getSpecialInventory(@NotNull Player player, boolean online) throws InstantiationException; /** * Checks if the server version is supported by OpenInv. @@ -155,7 +129,7 @@ public interface IOpenInv { * @throws IllegalStateException if the server version is unsupported */ @Nullable - Player loadPlayer(final OfflinePlayer offline); + Player loadPlayer(@NotNull final OfflinePlayer offline); /** * Get an OfflinePlayer by name. @@ -168,7 +142,7 @@ public interface IOpenInv { * @return the OfflinePlayer with the closest matching name or null if no players have ever logged in */ @Nullable - OfflinePlayer matchPlayer(String name); + OfflinePlayer matchPlayer(@NotNull String name); /** * Check the configuration value for whether or not OpenInv displays a notification to the user @@ -194,7 +168,7 @@ public interface IOpenInv { * @param plugin the Plugin no longer holding a reference to the Player * @throws IllegalStateException if the server version is unsupported */ - void releasePlayer(Player player, Plugin plugin); + void releasePlayer(@NotNull Player player, @NotNull Plugin plugin); /** * Mark a Player as in use by a Plugin to prevent it from being removed from the cache. Used to @@ -219,32 +193,32 @@ public interface IOpenInv { * @param plugin the Plugin holding the reference to the Player * @throws IllegalStateException if the server version is unsupported */ - void retainPlayer(Player player, Plugin plugin); + void retainPlayer(@NotNull Player player, @NotNull Plugin plugin); /** * Sets a player's AnyChest setting. * - * @param player the OfflinePlayer + * @param offline the OfflinePlayer * @param status the status * @throws IllegalStateException if the server version is unsupported */ - void setPlayerAnyChestStatus(OfflinePlayer player, boolean status); + void setPlayerAnyChestStatus(@NotNull OfflinePlayer offline, boolean status); /** * Sets a player's SilentChest setting. * - * @param player the OfflinePlayer + * @param offline the OfflinePlayer * @param status the status * @throws IllegalStateException if the server version is unsupported */ - void setPlayerSilentChestStatus(OfflinePlayer player, boolean status); + void setPlayerSilentChestStatus(@NotNull OfflinePlayer offline, boolean status); /** * Forcibly unload a cached Player's data. * - * @param player the OfflinePlayer to unload + * @param offline the OfflinePlayer to unload * @throws IllegalStateException if the server version is unsupported */ - void unload(OfflinePlayer player); + void unload(@NotNull OfflinePlayer offline); } diff --git a/api/src/main/java/com/lishid/openinv/internal/IAnySilentContainer.java b/api/src/main/java/com/lishid/openinv/internal/IAnySilentContainer.java index 9361706..4533999 100644 --- a/api/src/main/java/com/lishid/openinv/internal/IAnySilentContainer.java +++ b/api/src/main/java/com/lishid/openinv/internal/IAnySilentContainer.java @@ -18,6 +18,7 @@ package com.lishid.openinv.internal; import org.bukkit.block.Block; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public interface IAnySilentContainer { @@ -26,19 +27,19 @@ public interface IAnySilentContainer { * containers to open, be sure to check {@link #isAnyContainerNeeded(Player, Block)} * first. * - * @param player the Player opening the container - * @param silentchest whether the container's noise is to be silenced - * @param block the Block + * @param player the Player opening the container + * @param silent whether the container's noise is to be silenced + * @param block the Block * @return true if the container can be opened */ - boolean activateContainer(Player player, boolean silentchest, Block block); + boolean activateContainer(@NotNull Player player, boolean silent, @NotNull Block block); /** * Closes the Player's currently open container silently, if necessary. * * @param player the Player closing a container */ - void deactivateContainer(Player player); + void deactivateContainer(@NotNull Player player); /** * Checks if the container at the given coordinates is blocked. @@ -47,7 +48,7 @@ public interface IAnySilentContainer { * @param block the Block * @return true if the container is blocked */ - boolean isAnyContainerNeeded(Player player, Block block); + boolean isAnyContainerNeeded(@NotNull Player player, @NotNull Block block); /** * Checks if the given block is a container which can be unblocked or silenced. @@ -55,6 +56,6 @@ public interface IAnySilentContainer { * @param block the BlockState * @return true if the Block is a supported container */ - boolean isAnySilentContainer(Block block); + boolean isAnySilentContainer(@NotNull Block block); } diff --git a/api/src/main/java/com/lishid/openinv/internal/IInventoryAccess.java b/api/src/main/java/com/lishid/openinv/internal/IInventoryAccess.java index ceb4c5a..648cce9 100644 --- a/api/src/main/java/com/lishid/openinv/internal/IInventoryAccess.java +++ b/api/src/main/java/com/lishid/openinv/internal/IInventoryAccess.java @@ -16,9 +16,9 @@ package com.lishid.openinv.internal; -import javax.annotation.Nullable; - import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public interface IInventoryAccess { @@ -30,7 +30,7 @@ public interface IInventoryAccess { * @return the ISpecialEnderChest or null */ @Nullable - ISpecialEnderChest getSpecialEnderChest(Inventory inventory); + ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory); /** * Gets an ISpecialPlayerInventory from an Inventory or null if the Inventory is not backed by @@ -40,7 +40,7 @@ public interface IInventoryAccess { * @return the ISpecialPlayerInventory or null */ @Nullable - ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory); + ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory); /** * Check if an Inventory is an ISpecialEnderChest implementation. @@ -48,7 +48,7 @@ public interface IInventoryAccess { * @param inventory the Inventory * @return true if the Inventory is backed by an ISpecialEnderChest */ - boolean isSpecialEnderChest(Inventory inventory); + boolean isSpecialEnderChest(@NotNull Inventory inventory); /** * Check if an Inventory is an ISpecialPlayerInventory implementation. @@ -56,6 +56,6 @@ public interface IInventoryAccess { * @param inventory the Inventory * @return true if the Inventory is backed by an ISpecialPlayerInventory */ - boolean isSpecialPlayerInventory(Inventory inventory); + boolean isSpecialPlayerInventory(@NotNull Inventory inventory); } diff --git a/api/src/main/java/com/lishid/openinv/internal/ISpecialEnderChest.java b/api/src/main/java/com/lishid/openinv/internal/ISpecialEnderChest.java index 005f2d6..f076d20 100644 --- a/api/src/main/java/com/lishid/openinv/internal/ISpecialEnderChest.java +++ b/api/src/main/java/com/lishid/openinv/internal/ISpecialEnderChest.java @@ -17,23 +17,27 @@ package com.lishid.openinv.internal; import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public interface ISpecialEnderChest { /** - * Gets the Inventory associated with this ISpecialEnderChest. + * Gets the InventoryView associated with this ISpecialEnderChest. * - * @return the Inventory + * @param viewer the Player opening the ISpecialEnderChest + * @return the InventoryView */ - Inventory getBukkitInventory(); + @NotNull + InventoryView getBukkitView(@Nullable Player viewer); /** * Sets the Player associated with this ISpecialEnderChest online. * * @param player the Player coming online */ - void setPlayerOnline(Player player); + void setPlayerOnline(@NotNull Player player); /** * Sets the Player associated with this ISpecialEnderChest offline. diff --git a/api/src/main/java/com/lishid/openinv/internal/ISpecialPlayerInventory.java b/api/src/main/java/com/lishid/openinv/internal/ISpecialPlayerInventory.java index 077c392..87708b6 100644 --- a/api/src/main/java/com/lishid/openinv/internal/ISpecialPlayerInventory.java +++ b/api/src/main/java/com/lishid/openinv/internal/ISpecialPlayerInventory.java @@ -17,23 +17,27 @@ package com.lishid.openinv.internal; import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public interface ISpecialPlayerInventory { /** - * Gets the Inventory associated with this ISpecialPlayerInventory. + * Gets the InventoryView associated with this ISpecialPlayerInventory. * - * @return the Inventory + * @param viewer the Player opening the ISpecialPlayerInventory + * @return the InventoryView */ - Inventory getBukkitInventory(); + @NotNull + InventoryView getBukkitView(@Nullable Player viewer); /** * Sets the Player associated with this ISpecialPlayerInventory online. * * @param player the Player coming online */ - void setPlayerOnline(Player player); + void setPlayerOnline(@NotNull Player player); /** * Sets the Player associated with this ISpecialPlayerInventory offline. diff --git a/assembly/pom.xml b/assembly/pom.xml index 184b2d4..7d102a0 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvparent - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvassembly diff --git a/common/pom.xml b/common/pom.xml index 9010aee..d8a6e2a 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvparent - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvcommon @@ -38,7 +38,7 @@ com.lishid openinvapi - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/common/src/main/java/com/lishid/openinv/internal/IPlayerDataManager.java b/common/src/main/java/com/lishid/openinv/internal/IPlayerDataManager.java index 12df4a3..3dc3d75 100644 --- a/common/src/main/java/com/lishid/openinv/internal/IPlayerDataManager.java +++ b/common/src/main/java/com/lishid/openinv/internal/IPlayerDataManager.java @@ -17,9 +17,10 @@ package com.lishid.openinv.internal; import java.util.Collection; - import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public interface IPlayerDataManager { @@ -31,7 +32,8 @@ public interface IPlayerDataManager { * @param offline the OfflinePlayer * @return the Player loaded */ - Player loadPlayer(OfflinePlayer offline); + @Nullable + Player loadPlayer(@NotNull OfflinePlayer offline); /** * Gets a unique identifying string for an OfflinePlayer. @@ -39,7 +41,8 @@ public interface IPlayerDataManager { * @param offline the OfflinePlayer * @return the unique identifier */ - String getPlayerDataID(OfflinePlayer offline); + @NotNull + String getPlayerDataID(@NotNull OfflinePlayer offline); /** * Gets an OfflinePlayer by the given unique identifier. @@ -47,13 +50,15 @@ public interface IPlayerDataManager { * @param identifier the unique identifier * @return the OfflinePlayer, or null if no exact match was found */ - OfflinePlayer getPlayerByID(String identifier); + @Nullable + OfflinePlayer getPlayerByID(@NotNull String identifier); /** * Gets a Collection of all Players currently online. * * @return the Collection of Players */ - Collection getOnlinePlayers(); + @NotNull + Collection getOnlinePlayers(); } diff --git a/common/src/main/java/com/lishid/openinv/util/Cache.java b/common/src/main/java/com/lishid/openinv/util/Cache.java index dd6d0da..155bcf1 100644 --- a/common/src/main/java/com/lishid/openinv/util/Cache.java +++ b/common/src/main/java/com/lishid/openinv/util/Cache.java @@ -16,6 +16,8 @@ package com.lishid.openinv.util; +import com.google.common.collect.Multimap; +import com.google.common.collect.TreeMultimap; import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; @@ -23,9 +25,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import com.google.common.collect.Multimap; -import com.google.common.collect.TreeMultimap; - /** * A minimal thread-safe time-based cache implementation backed by a HashMap and TreeMultimap. * diff --git a/common/src/main/java/com/lishid/openinv/util/InternalAccessor.java b/common/src/main/java/com/lishid/openinv/util/InternalAccessor.java index 652198a..74153b5 100644 --- a/common/src/main/java/com/lishid/openinv/util/InternalAccessor.java +++ b/common/src/main/java/com/lishid/openinv/util/InternalAccessor.java @@ -16,16 +16,14 @@ package com.lishid.openinv.util; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; - import com.lishid.openinv.internal.IAnySilentContainer; import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.IPlayerDataManager; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; - +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; @@ -63,13 +61,14 @@ public class InternalAccessor { this.version = packageName.substring(packageName.lastIndexOf('.') + 1); try { + // TODO: implement support for CraftMagicNumbers#getMappingsVersion Class.forName("com.lishid.openinv.internal." + this.version + ".SpecialPlayerInventory"); Class.forName("com.lishid.openinv.internal." + this.version + ".SpecialEnderChest"); this.playerDataManager = this.createObject(IPlayerDataManager.class, "PlayerDataManager"); this.inventoryAccess = this.createObject(IInventoryAccess.class, "InventoryAccess"); this.anySilentContainer = this.createObject(IAnySilentContainer.class, "AnySilentContainer"); this.supported = true; - } catch (Exception e) {} + } catch (Exception ignored) {} } private T createObject(final Class assignableClass, final String className, diff --git a/internal/1_4_5/pom.xml b/internal/1_4_5/pom.xml index 7ff574a..08d0b2a 100644 --- a/internal/1_4_5/pom.xml +++ b/internal/1_4_5/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_4_5 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/AnySilentContainer.java b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/AnySilentContainer.java index 494e124..fb0f1ce 100644 --- a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/AnySilentContainer.java +++ b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_4_5; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_4_5.AxisAlignedBB; import net.minecraft.server.v1_4_5.BlockEnderChest; import net.minecraft.server.v1_4_5.Container; @@ -34,43 +29,46 @@ import net.minecraft.server.v1_4_5.Packet100OpenWindow; import net.minecraft.server.v1_4_5.TileEntityChest; import net.minecraft.server.v1_4_5.TileEntityEnderChest; import net.minecraft.server.v1_4_5.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_4_5.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; + World world = PlayerDataManager.getHandle(bukkitPlayer).world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); // If block next to chest is chest and has a block or ocelot on top - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -93,18 +91,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -123,20 +121,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if (world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -160,12 +158,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/InventoryAccess.java b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/InventoryAccess.java index 5b7a11c..f2bbb18 100644 --- a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/InventoryAccess.java +++ b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_4_5.IInventory; - import org.bukkit.craftbukkit.v1_4_5.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/PlayerDataManager.java b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/PlayerDataManager.java index 4661453..f92cc0e 100644 --- a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/PlayerDataManager.java +++ b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/PlayerDataManager.java @@ -16,29 +16,26 @@ package com.lishid.openinv.internal.v1_4_5; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Arrays; import java.util.Collection; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_4_5.EntityPlayer; import net.minecraft.server.v1_4_5.ItemInWorldManager; import net.minecraft.server.v1_4_5.MinecraftServer; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_4_5.CraftServer; import org.bukkit.craftbukkit.v1_4_5.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -49,7 +46,7 @@ public class PlayerDataManager implements IPlayerDataManager { new ItemInWorldManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -58,13 +55,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getName(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); // Ensure player is a real player, otherwise return null if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { @@ -73,7 +71,8 @@ public class PlayerDataManager implements IPlayerDataManager { return player; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Arrays.asList(Bukkit.getOnlinePlayers()); } diff --git a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SilentContainerChest.java b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SilentContainerChest.java index a192485..01a0641 100644 --- a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SilentContainerChest.java +++ b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_4_5.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); // Send close signal i2.f(); diff --git a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialEnderChest.java b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialEnderChest.java index 83cf09a..d31e94b 100644 --- a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialEnderChest.java +++ b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_4_5; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_4_5.EntityPlayer; import net.minecraft.server.v1_4_5.IInventory; import net.minecraft.server.v1_4_5.InventoryEnderChest; import net.minecraft.server.v1_4_5.InventorySubcontainer; import net.minecraft.server.v1_4_5.ItemStack; - import org.bukkit.craftbukkit.v1_4_5.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_4_5.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_4_5.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -56,13 +55,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -71,7 +88,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialPlayerInventory.java b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialPlayerInventory.java index fb70752..dc3d4e1 100644 --- a/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialPlayerInventory.java +++ b/internal/1_4_5/src/main/java/com/lishid/openinv/internal/v1_4_5/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_4_5; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_4_5.ItemStack; import net.minecraft.server.v1_4_5.PlayerInventory; - import org.bukkit.craftbukkit.v1_4_5.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/1_4_6/pom.xml b/internal/1_4_6/pom.xml index 78322ea..4381239 100644 --- a/internal/1_4_6/pom.xml +++ b/internal/1_4_6/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_4_6 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/AnySilentContainer.java b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/AnySilentContainer.java index 024d64e..51ac76b 100644 --- a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/AnySilentContainer.java +++ b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_4_6; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_4_6.AxisAlignedBB; import net.minecraft.server.v1_4_6.BlockEnderChest; import net.minecraft.server.v1_4_6.Container; @@ -34,43 +29,46 @@ import net.minecraft.server.v1_4_6.Packet100OpenWindow; import net.minecraft.server.v1_4_6.TileEntityChest; import net.minecraft.server.v1_4_6.TileEntityEnderChest; import net.minecraft.server.v1_4_6.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_4_6.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; + World world = PlayerDataManager.getHandle(bukkitPlayer).world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); // If block next to chest is chest and has a block or ocelot on top - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -93,18 +91,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -123,20 +121,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if (world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -160,12 +158,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/InventoryAccess.java b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/InventoryAccess.java index 72a209d..89db605 100644 --- a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/InventoryAccess.java +++ b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_4_6.IInventory; - import org.bukkit.craftbukkit.v1_4_6.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/PlayerDataManager.java b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/PlayerDataManager.java index 9b56c4b..5ce88e0 100644 --- a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/PlayerDataManager.java +++ b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/PlayerDataManager.java @@ -16,29 +16,26 @@ package com.lishid.openinv.internal.v1_4_6; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Arrays; import java.util.Collection; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_4_6.EntityPlayer; import net.minecraft.server.v1_4_6.MinecraftServer; import net.minecraft.server.v1_4_6.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_4_6.CraftServer; import org.bukkit.craftbukkit.v1_4_6.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -49,7 +46,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -58,13 +55,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getName(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); // Ensure player is a real player, otherwise return null if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { @@ -73,7 +71,8 @@ public class PlayerDataManager implements IPlayerDataManager { return player; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Arrays.asList(Bukkit.getOnlinePlayers()); } diff --git a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SilentContainerChest.java b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SilentContainerChest.java index bc9d1d3..7094676 100644 --- a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SilentContainerChest.java +++ b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_4_6.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); // Send close signal i2.f(); diff --git a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialEnderChest.java b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialEnderChest.java index f6eebc1..2e2e8ae 100644 --- a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialEnderChest.java +++ b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_4_6; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_4_6.EntityPlayer; import net.minecraft.server.v1_4_6.IInventory; import net.minecraft.server.v1_4_6.InventoryEnderChest; import net.minecraft.server.v1_4_6.InventorySubcontainer; import net.minecraft.server.v1_4_6.ItemStack; - import org.bukkit.craftbukkit.v1_4_6.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_4_6.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_4_6.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -56,13 +55,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -71,7 +88,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialPlayerInventory.java b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialPlayerInventory.java index 0976e2b..2e0c822 100644 --- a/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialPlayerInventory.java +++ b/internal/1_4_6/src/main/java/com/lishid/openinv/internal/v1_4_6/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_4_6; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_4_6.ItemStack; import net.minecraft.server.v1_4_6.PlayerInventory; - import org.bukkit.craftbukkit.v1_4_6.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/pom.xml b/internal/pom.xml index 1446216..2fee337 100644 --- a/internal/pom.xml +++ b/internal/pom.xml @@ -20,7 +20,7 @@ com.lishid openinvparent - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvinternal diff --git a/internal/v1_10_R1/pom.xml b/internal/v1_10_R1/pom.xml index 26afc6f..b327947 100644 --- a/internal/v1_10_R1/pom.xml +++ b/internal/v1_10_R1/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_10_R1 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/AnySilentContainer.java b/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/AnySilentContainer.java index e571d4f..ed05132 100644 --- a/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/AnySilentContainer.java +++ b/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/AnySilentContainer.java @@ -16,14 +16,8 @@ package com.lishid.openinv.internal.v1_10_R1; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.inventory.InventoryView; - +import java.lang.reflect.Field; import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.Block; import net.minecraft.server.v1_10_R1.BlockChest; @@ -43,6 +37,10 @@ import net.minecraft.server.v1_10_R1.TileEntity; import net.minecraft.server.v1_10_R1.TileEntityChest; import net.minecraft.server.v1_10_R1.TileEntityEnderChest; import net.minecraft.server.v1_10_R1.World; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @@ -59,15 +57,15 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull org.bukkit.block.Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block b) { - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull org.bukkit.block.Block bukkitBlock) { + + World world = PlayerDataManager.getHandle(bukkitPlayer).world; + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Block block = world.getType(blockPosition).getBlock(); if (block instanceof BlockEnderChest) { @@ -122,19 +120,19 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block b) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull org.bukkit.block.Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is pretty much API-only - if (silentchest && b.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); player.b(StatisticList.X); return true; } World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Object tile = world.getTileEntity(blockPosition); if (tile == null) { @@ -190,7 +188,7 @@ public class AnySilentContainer implements IAnySilentContainer { } // AnyChest only - SilentChest not active, container unsupported, or unnecessary. - if (!silentchest || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { + if (!silent || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { player.openContainer(tileInventory); return true; } @@ -208,7 +206,7 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public void deactivateContainer(final Player bukkitPlayer) { + public void deactivateContainer(@NotNull final Player bukkitPlayer) { if (this.playerInteractManagerGamemode == null) { return; } diff --git a/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/InventoryAccess.java b/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/InventoryAccess.java index 6d13fdf..f3ecfb6 100644 --- a/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/InventoryAccess.java +++ b/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_10_R1.IInventory; - import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/PlayerDataManager.java b/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/PlayerDataManager.java index dc11335..6d5d91c 100644 --- a/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/PlayerDataManager.java +++ b/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/PlayerDataManager.java @@ -16,31 +16,27 @@ package com.lishid.openinv.internal.v1_10_R1; +import com.lishid.openinv.internal.IPlayerDataManager; +import com.mojang.authlib.GameProfile; import java.util.Collection; import java.util.UUID; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import com.mojang.authlib.GameProfile; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_10_R1.EntityPlayer; import net.minecraft.server.v1_10_R1.MinecraftServer; import net.minecraft.server.v1_10_R1.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_10_R1.CraftServer; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -51,7 +47,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -60,13 +56,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); @@ -81,7 +78,8 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Bukkit.getOnlinePlayers(); } diff --git a/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/SpecialEnderChest.java b/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/SpecialEnderChest.java index 95c7482..3d8a4f7 100644 --- a/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/SpecialEnderChest.java +++ b/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/SpecialEnderChest.java @@ -16,21 +16,21 @@ package com.lishid.openinv.internal.v1_10_R1; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.lang.reflect.Modifier; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_10_R1.EntityPlayer; import net.minecraft.server.v1_10_R1.IInventory; import net.minecraft.server.v1_10_R1.InventoryEnderChest; import net.minecraft.server.v1_10_R1.InventorySubcontainer; import net.minecraft.server.v1_10_R1.ItemStack; - import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -69,19 +69,37 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento } } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); this.bukkitOwner = nmsPlayer.getBukkitEntity(); setItemArrays(nmsPlayer.getEnderChest(), this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/SpecialPlayerInventory.java b/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/SpecialPlayerInventory.java index 36072a8..8b4c5e7 100644 --- a/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/SpecialPlayerInventory.java +++ b/internal/v1_10_R1/src/main/java/com/lishid/openinv/internal/v1_10_R1/SpecialPlayerInventory.java @@ -16,19 +16,19 @@ package com.lishid.openinv.internal.v1_10_R1; +import com.lishid.openinv.internal.ISpecialPlayerInventory; import java.lang.reflect.Field; import java.lang.reflect.Modifier; - -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_10_R1.EntityHuman; import net.minecraft.server.v1_10_R1.ItemStack; import net.minecraft.server.v1_10_R1.PlayerInventory; - import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -79,13 +79,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP } } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); setItemArrays(this.player.inventory, items, armor, extraSlots); diff --git a/internal/v1_11_R1/pom.xml b/internal/v1_11_R1/pom.xml index dc685c2..b8c6a52 100644 --- a/internal/v1_11_R1/pom.xml +++ b/internal/v1_11_R1/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_11_R1 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/AnySilentContainer.java b/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/AnySilentContainer.java index 42a42f2..35eeab0 100644 --- a/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/AnySilentContainer.java +++ b/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/AnySilentContainer.java @@ -16,15 +16,8 @@ package com.lishid.openinv.internal.v1_11_R1; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.Material; -import org.bukkit.block.BlockState; -import org.bukkit.entity.Player; -import org.bukkit.inventory.InventoryView; - +import java.lang.reflect.Field; import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.Block; import net.minecraft.server.v1_11_R1.BlockChest; @@ -35,18 +28,23 @@ import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityOcelot; import net.minecraft.server.v1_11_R1.EntityPlayer; import net.minecraft.server.v1_11_R1.EnumDirection; +import net.minecraft.server.v1_11_R1.EnumGamemode; import net.minecraft.server.v1_11_R1.IBlockData; import net.minecraft.server.v1_11_R1.ITileInventory; import net.minecraft.server.v1_11_R1.InventoryEnderChest; import net.minecraft.server.v1_11_R1.InventoryLargeChest; +import net.minecraft.server.v1_11_R1.PlayerInteractManager; import net.minecraft.server.v1_11_R1.StatisticList; import net.minecraft.server.v1_11_R1.TileEntity; import net.minecraft.server.v1_11_R1.TileEntityChest; import net.minecraft.server.v1_11_R1.TileEntityEnderChest; import net.minecraft.server.v1_11_R1.TileEntityShulkerBox; import net.minecraft.server.v1_11_R1.World; -import net.minecraft.server.v1_11_R1.EnumGamemode; -import net.minecraft.server.v1_11_R1.PlayerInteractManager; +import org.bukkit.Material; +import org.bukkit.block.BlockState; +import org.bukkit.entity.Player; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @@ -63,19 +61,19 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - if (block.getType() == Material.ENDER_CHEST) { + public boolean isAnySilentContainer(@NotNull org.bukkit.block.Block bukkitBlock) { + if (bukkitBlock.getType() == Material.ENDER_CHEST) { return true; } - BlockState state = block.getState(); + BlockState state = bukkitBlock.getState(); return state instanceof org.bukkit.block.Chest || state instanceof org.bukkit.block.ShulkerBox; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block b) { - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull org.bukkit.block.Block bukkitBlock) { + + World world = PlayerDataManager.getHandle(bukkitPlayer).world; + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); IBlockData blockData = world.getType(blockPosition); Block block = blockData.getBlock(); @@ -162,19 +160,19 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block b) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull org.bukkit.block.Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is pretty much API-only - if (silentchest && b.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); player.b(StatisticList.getStatistic("stat.enderchestOpened")); return true; } final World world = player.world; - final BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + final BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); final Object tile = world.getTileEntity(blockPosition); if (tile == null) { @@ -234,7 +232,7 @@ public class AnySilentContainer implements IAnySilentContainer { } // AnyChest only - SilentChest not active, container unsupported, or unnecessary. - if (!silentchest || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { + if (!silent || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { player.openContainer(tileInventory); return true; } @@ -252,7 +250,7 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public void deactivateContainer(final Player bukkitPlayer) { + public void deactivateContainer(@NotNull final Player bukkitPlayer) { if (this.playerInteractManagerGamemode == null) { return; } diff --git a/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/InventoryAccess.java b/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/InventoryAccess.java index 741536c..6692094 100644 --- a/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/InventoryAccess.java +++ b/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_11_R1.IInventory; - import org.bukkit.craftbukkit.v1_11_R1.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/PlayerDataManager.java b/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/PlayerDataManager.java index 8d1566c..083bc0f 100644 --- a/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/PlayerDataManager.java +++ b/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/PlayerDataManager.java @@ -16,31 +16,27 @@ package com.lishid.openinv.internal.v1_11_R1; +import com.lishid.openinv.internal.IPlayerDataManager; +import com.mojang.authlib.GameProfile; import java.util.Collection; import java.util.UUID; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import com.mojang.authlib.GameProfile; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_11_R1.EntityPlayer; import net.minecraft.server.v1_11_R1.MinecraftServer; import net.minecraft.server.v1_11_R1.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_11_R1.CraftServer; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -51,7 +47,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -60,13 +56,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); @@ -81,7 +78,8 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Bukkit.getOnlinePlayers(); } diff --git a/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/SpecialEnderChest.java b/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/SpecialEnderChest.java index a4115f0..5619dbf 100644 --- a/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/SpecialEnderChest.java +++ b/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/SpecialEnderChest.java @@ -16,22 +16,22 @@ package com.lishid.openinv.internal.v1_11_R1; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_11_R1.EntityPlayer; import net.minecraft.server.v1_11_R1.IInventory; import net.minecraft.server.v1_11_R1.InventoryEnderChest; import net.minecraft.server.v1_11_R1.InventorySubcontainer; import net.minecraft.server.v1_11_R1.ItemStack; - import org.bukkit.craftbukkit.v1_11_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -70,19 +70,37 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento } } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); this.bukkitOwner = nmsPlayer.getBukkitEntity(); setItemLists(nmsPlayer.getEnderChest(), this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/SpecialPlayerInventory.java b/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/SpecialPlayerInventory.java index b403d29..42baa12 100644 --- a/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/SpecialPlayerInventory.java +++ b/internal/v1_11_R1/src/main/java/com/lishid/openinv/internal/v1_11_R1/SpecialPlayerInventory.java @@ -16,22 +16,22 @@ package com.lishid.openinv.internal.v1_11_R1; +import com.lishid.openinv.internal.ISpecialPlayerInventory; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.Arrays; - -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_11_R1.ContainerUtil; import net.minecraft.server.v1_11_R1.EntityHuman; import net.minecraft.server.v1_11_R1.ItemStack; import net.minecraft.server.v1_11_R1.NonNullList; import net.minecraft.server.v1_11_R1.PlayerInventory; - import org.bukkit.craftbukkit.v1_11_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -81,13 +81,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP } } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); setItemArrays(this.player.inventory, items, armor, extraSlots); diff --git a/internal/v1_12_R1/pom.xml b/internal/v1_12_R1/pom.xml index 02f02e8..4538501 100644 --- a/internal/v1_12_R1/pom.xml +++ b/internal/v1_12_R1/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_12_R1 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/AnySilentContainer.java b/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/AnySilentContainer.java index 493eb5d..4bf1a17 100644 --- a/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/AnySilentContainer.java +++ b/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/AnySilentContainer.java @@ -16,16 +16,8 @@ package com.lishid.openinv.internal.v1_12_R1; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.Material; -import org.bukkit.Statistic; -import org.bukkit.block.BlockState; -import org.bukkit.entity.Player; -import org.bukkit.inventory.InventoryView; - +import java.lang.reflect.Field; import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.Block; import net.minecraft.server.v1_12_R1.BlockChest; @@ -47,6 +39,12 @@ import net.minecraft.server.v1_12_R1.TileEntityChest; import net.minecraft.server.v1_12_R1.TileEntityEnderChest; import net.minecraft.server.v1_12_R1.TileEntityShulkerBox; import net.minecraft.server.v1_12_R1.World; +import org.bukkit.Material; +import org.bukkit.Statistic; +import org.bukkit.block.BlockState; +import org.bukkit.entity.Player; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @@ -63,20 +61,20 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean isAnySilentContainer(final org.bukkit.block.Block block) { - if (block.getType() == Material.ENDER_CHEST) { + public boolean isAnySilentContainer(@NotNull final org.bukkit.block.Block bukkitBlock) { + if (bukkitBlock.getType() == Material.ENDER_CHEST) { return true; } - BlockState state = block.getState(); + BlockState state = bukkitBlock.getState(); return state instanceof org.bukkit.block.Chest || state instanceof org.bukkit.block.ShulkerBox; } @Override - public boolean isAnyContainerNeeded(final Player p, final org.bukkit.block.Block b) { - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + public boolean isAnyContainerNeeded(@NotNull final Player p, @NotNull final org.bukkit.block.Block bukkitBlock) { + + World world = PlayerDataManager.getHandle(p).world; + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); IBlockData blockData = world.getType(blockPosition); Block block = blockData.getBlock(); @@ -158,8 +156,8 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(final Player bukkitPlayer, final boolean silentchest, - final org.bukkit.block.Block bukkitBlock) { + public boolean activateContainer(@NotNull final Player bukkitPlayer, final boolean silentchest, + @NotNull final org.bukkit.block.Block bukkitBlock) { // Silent ender chest is API-only if (silentchest && bukkitBlock.getType() == Material.ENDER_CHEST) { @@ -250,7 +248,7 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public void deactivateContainer(final Player bukkitPlayer) { + public void deactivateContainer(@NotNull final Player bukkitPlayer) { if (this.playerInteractManagerGamemode == null) { return; } diff --git a/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/InventoryAccess.java b/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/InventoryAccess.java index 06c597a..810a228 100644 --- a/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/InventoryAccess.java +++ b/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_12_R1.IInventory; - import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public ISpecialEnderChest getSpecialEnderChest(final Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull final Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -45,7 +43,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(final Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull final Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -60,7 +58,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(final Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull final Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -69,7 +67,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialPlayerInventory(final Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull final Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } diff --git a/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/PlayerDataManager.java b/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/PlayerDataManager.java index 885cde8..6261ae6 100644 --- a/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/PlayerDataManager.java +++ b/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/PlayerDataManager.java @@ -16,24 +16,20 @@ package com.lishid.openinv.internal.v1_12_R1; +import com.lishid.openinv.internal.IPlayerDataManager; +import com.mojang.authlib.GameProfile; import java.util.Collection; import java.util.UUID; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import com.mojang.authlib.GameProfile; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_12_R1.EntityPlayer; import net.minecraft.server.v1_12_R1.MinecraftServer; import net.minecraft.server.v1_12_R1.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_12_R1.CraftServer; import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @@ -58,13 +54,14 @@ public class PlayerDataManager implements IPlayerDataManager { return nmsPlayer; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Bukkit.getOnlinePlayers(); } @Override - public OfflinePlayer getPlayerByID(final String identifier) { + public OfflinePlayer getPlayerByID(@NotNull final String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); @@ -79,15 +76,16 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override - public String getPlayerDataID(final OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull final OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public Player loadPlayer(final OfflinePlayer offline) { + public Player loadPlayer(@NotNull final OfflinePlayer offline) { // Ensure player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -98,7 +96,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = entity == null ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); diff --git a/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/SpecialEnderChest.java b/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/SpecialEnderChest.java index d86c01f..ca7b565 100644 --- a/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/SpecialEnderChest.java +++ b/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/SpecialEnderChest.java @@ -16,22 +16,22 @@ package com.lishid.openinv.internal.v1_12_R1; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_12_R1.EntityPlayer; import net.minecraft.server.v1_12_R1.IInventory; import net.minecraft.server.v1_12_R1.InventoryEnderChest; import net.minecraft.server.v1_12_R1.InventorySubcontainer; import net.minecraft.server.v1_12_R1.ItemStack; - import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -51,9 +51,27 @@ public class SpecialEnderChest extends InventorySubcontainer this.setItemLists(this, this.enderChest.getContents()); } + @NotNull @Override - public Inventory getBukkitInventory() { - return this.inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override @@ -83,13 +101,13 @@ public class SpecialEnderChest extends InventorySubcontainer } @Override - public void setPlayerOnline(final Player player) { + public void setPlayerOnline(@NotNull final Player player) { if (!this.playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); this.bukkitOwner = nmsPlayer.getBukkitEntity(); this.setItemLists(nmsPlayer.getEnderChest(), this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} this.playerOnline = true; } } diff --git a/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/SpecialPlayerInventory.java b/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/SpecialPlayerInventory.java index 5bbf01e..13f5ee1 100644 --- a/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/SpecialPlayerInventory.java +++ b/internal/v1_12_R1/src/main/java/com/lishid/openinv/internal/v1_12_R1/SpecialPlayerInventory.java @@ -16,22 +16,22 @@ package com.lishid.openinv.internal.v1_12_R1; +import com.lishid.openinv.internal.ISpecialPlayerInventory; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.Arrays; - -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_12_R1.ContainerUtil; import net.minecraft.server.v1_12_R1.EntityHuman; import net.minecraft.server.v1_12_R1.ItemStack; import net.minecraft.server.v1_12_R1.NonNullList; import net.minecraft.server.v1_12_R1.PlayerInventory; - import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -50,9 +50,27 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP return true; } + @NotNull @Override - public Inventory getBukkitInventory() { - return this.inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override @@ -191,7 +209,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP } @Override - public void setPlayerOnline(final Player player) { + public void setPlayerOnline(@NotNull final Player player) { if (!this.playerOnline) { this.player = PlayerDataManager.getHandle(player); this.setItemArrays(this.player.inventory, this.items, this.armor, this.extraSlots); diff --git a/internal/v1_13_R1/pom.xml b/internal/v1_13_R1/pom.xml index aab5195..308c68e 100644 --- a/internal/v1_13_R1/pom.xml +++ b/internal/v1_13_R1/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_13_R1 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/AnySilentContainer.java b/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/AnySilentContainer.java index 35da30c..a60097e 100644 --- a/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/AnySilentContainer.java +++ b/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/AnySilentContainer.java @@ -17,6 +17,7 @@ package com.lishid.openinv.internal.v1_13_R1; import com.lishid.openinv.internal.IAnySilentContainer; +import java.lang.reflect.Field; import net.minecraft.server.v1_13_R1.AxisAlignedBB; import net.minecraft.server.v1_13_R1.Block; import net.minecraft.server.v1_13_R1.BlockChest; @@ -47,8 +48,7 @@ import org.bukkit.Statistic; import org.bukkit.block.BlockState; import org.bukkit.entity.Player; import org.bukkit.inventory.InventoryView; - -import java.lang.reflect.Field; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @@ -65,20 +65,20 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean isAnySilentContainer(final org.bukkit.block.Block block) { - if (block.getType() == Material.ENDER_CHEST) { + public boolean isAnySilentContainer(@NotNull final org.bukkit.block.Block bukkitBlock) { + if (bukkitBlock.getType() == Material.ENDER_CHEST) { return true; } - BlockState state = block.getState(); + BlockState state = bukkitBlock.getState(); return state instanceof org.bukkit.block.Chest || state instanceof org.bukkit.block.ShulkerBox; } @Override - public boolean isAnyContainerNeeded(final Player p, final org.bukkit.block.Block b) { - EntityPlayer player = com.lishid.openinv.internal.v1_13_R1.PlayerDataManager.getHandle(p); - World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + public boolean isAnyContainerNeeded(@NotNull final Player bukkitPlayer, @NotNull final org.bukkit.block.Block bukkitBlock) { + + World world = PlayerDataManager.getHandle(bukkitPlayer).world; + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); IBlockData blockData = world.getType(blockPosition); Block block = blockData.getBlock(); @@ -160,11 +160,11 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(final Player bukkitPlayer, final boolean silentchest, - final org.bukkit.block.Block bukkitBlock) { + public boolean activateContainer(@NotNull final Player bukkitPlayer, final boolean silentsilent, + @NotNull final org.bukkit.block.Block bukkitBlock) { // Silent ender chest is API-only - if (silentchest && bukkitBlock.getType() == Material.ENDER_CHEST) { + if (silentsilent && bukkitBlock.getType() == Material.ENDER_CHEST) { bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); bukkitPlayer.incrementStatistic(Statistic.ENDERCHEST_OPENED); return true; @@ -236,7 +236,7 @@ public class AnySilentContainer implements IAnySilentContainer { } // AnyChest only - SilentChest not active, container unsupported, or unnecessary. - if (!silentchest || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { + if (!silentsilent || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { player.openContainer(tileInventory); return true; } @@ -254,7 +254,7 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public void deactivateContainer(final Player bukkitPlayer) { + public void deactivateContainer(@NotNull final Player bukkitPlayer) { if (this.playerInteractManagerGamemode == null) { return; } diff --git a/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/InventoryAccess.java b/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/InventoryAccess.java index fc5acc7..404e41d 100644 --- a/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/InventoryAccess.java +++ b/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_13_R1.IInventory; - import org.bukkit.craftbukkit.v1_13_R1.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public ISpecialEnderChest getSpecialEnderChest(final Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull final Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -45,7 +43,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(final Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull final Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -60,7 +58,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(final Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull final Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -69,7 +67,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialPlayerInventory(final Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull final Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } diff --git a/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/PlayerDataManager.java b/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/PlayerDataManager.java index 73db1d0..f36015e 100644 --- a/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/PlayerDataManager.java +++ b/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/PlayerDataManager.java @@ -16,24 +16,20 @@ package com.lishid.openinv.internal.v1_13_R1; +import com.lishid.openinv.internal.IPlayerDataManager; +import com.mojang.authlib.GameProfile; import java.util.Collection; import java.util.UUID; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import com.mojang.authlib.GameProfile; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_13_R1.EntityPlayer; import net.minecraft.server.v1_13_R1.MinecraftServer; import net.minecraft.server.v1_13_R1.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_13_R1.CraftServer; import org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @@ -57,13 +53,14 @@ public class PlayerDataManager implements IPlayerDataManager { return nmsPlayer; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Bukkit.getOnlinePlayers(); } @Override - public OfflinePlayer getPlayerByID(final String identifier) { + public OfflinePlayer getPlayerByID(@NotNull final String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); @@ -78,15 +75,16 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override - public String getPlayerDataID(final OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull final OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public Player loadPlayer(final OfflinePlayer offline) { + public Player loadPlayer(@NotNull final OfflinePlayer offline) { // Ensure player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } diff --git a/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/SpecialEnderChest.java b/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/SpecialEnderChest.java index 7d3e41e..28d1569 100644 --- a/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/SpecialEnderChest.java +++ b/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/SpecialEnderChest.java @@ -16,22 +16,22 @@ package com.lishid.openinv.internal.v1_13_R1; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_13_R1.EntityPlayer; import net.minecraft.server.v1_13_R1.IInventory; import net.minecraft.server.v1_13_R1.InventoryEnderChest; import net.minecraft.server.v1_13_R1.InventorySubcontainer; import net.minecraft.server.v1_13_R1.ItemStack; - import org.bukkit.craftbukkit.v1_13_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -48,9 +48,27 @@ public class SpecialEnderChest extends InventorySubcontainer this.setItemLists(this, this.enderChest.getContents()); } + @NotNull @Override - public Inventory getBukkitInventory() { - return this.inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override @@ -79,13 +97,13 @@ public class SpecialEnderChest extends InventorySubcontainer } @Override - public void setPlayerOnline(final Player player) { + public void setPlayerOnline(@NotNull final Player player) { if (!this.playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); this.bukkitOwner = nmsPlayer.getBukkitEntity(); this.setItemLists(nmsPlayer.getEnderChest(), this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} this.playerOnline = true; } } diff --git a/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/SpecialPlayerInventory.java b/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/SpecialPlayerInventory.java index 5857f0b..bcdf026 100644 --- a/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/SpecialPlayerInventory.java +++ b/internal/v1_13_R1/src/main/java/com/lishid/openinv/internal/v1_13_R1/SpecialPlayerInventory.java @@ -16,24 +16,24 @@ package com.lishid.openinv.internal.v1_13_R1; +import com.lishid.openinv.internal.ISpecialPlayerInventory; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.Arrays; - -import com.lishid.openinv.internal.ISpecialPlayerInventory; - import net.minecraft.server.v1_13_R1.ChatMessage; -import net.minecraft.server.v1_13_R1.IChatBaseComponent; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_13_R1.ContainerUtil; import net.minecraft.server.v1_13_R1.EntityHuman; +import net.minecraft.server.v1_13_R1.IChatBaseComponent; import net.minecraft.server.v1_13_R1.ItemStack; import net.minecraft.server.v1_13_R1.NonNullList; import net.minecraft.server.v1_13_R1.PlayerInventory; - import org.bukkit.craftbukkit.v1_13_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -52,9 +52,27 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP return true; } + @NotNull @Override - public Inventory getBukkitInventory() { - return this.inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override @@ -190,7 +208,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP } @Override - public void setPlayerOnline(final Player player) { + public void setPlayerOnline(@NotNull final Player player) { if (!this.playerOnline) { this.player = PlayerDataManager.getHandle(player); this.setItemArrays(this.player.inventory, this.items, this.armor, this.extraSlots); diff --git a/internal/v1_13_R2/pom.xml b/internal/v1_13_R2/pom.xml index d6cb962..229e1c9 100644 --- a/internal/v1_13_R2/pom.xml +++ b/internal/v1_13_R2/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_13_R2 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/AnySilentContainer.java b/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/AnySilentContainer.java index 511a1b6..778dfb9 100644 --- a/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/AnySilentContainer.java +++ b/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/AnySilentContainer.java @@ -17,6 +17,9 @@ package com.lishid.openinv.internal.v1_13_R2; import com.lishid.openinv.internal.IAnySilentContainer; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.Block; import net.minecraft.server.v1_13_R2.BlockChest; @@ -48,10 +51,7 @@ import org.bukkit.Statistic; import org.bukkit.block.BlockState; import org.bukkit.entity.Player; import org.bukkit.inventory.InventoryView; - -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @@ -68,20 +68,20 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean isAnySilentContainer(final org.bukkit.block.Block block) { - if (block.getType() == Material.ENDER_CHEST) { + public boolean isAnySilentContainer(@NotNull final org.bukkit.block.Block bukkitBlock) { + if (bukkitBlock.getType() == Material.ENDER_CHEST) { return true; } - BlockState state = block.getState(); + BlockState state = bukkitBlock.getState(); return state instanceof org.bukkit.block.Chest || state instanceof org.bukkit.block.ShulkerBox; } @Override - public boolean isAnyContainerNeeded(final Player p, final org.bukkit.block.Block b) { - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + public boolean isAnyContainerNeeded(@NotNull final Player bukkitPlayer, @NotNull final org.bukkit.block.Block bukkitBlock) { + + World world = PlayerDataManager.getHandle(bukkitPlayer).world; + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); IBlockData blockData = world.getType(blockPosition); Block block = blockData.getBlock(); @@ -172,11 +172,11 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(final Player bukkitPlayer, final boolean silentchest, - final org.bukkit.block.Block bukkitBlock) { + public boolean activateContainer(@NotNull final Player bukkitPlayer, final boolean silent, + @NotNull final org.bukkit.block.Block bukkitBlock) { // Silent ender chest is API-only - if (silentchest && bukkitBlock.getType() == Material.ENDER_CHEST) { + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); bukkitPlayer.incrementStatistic(Statistic.ENDERCHEST_OPENED); return true; @@ -248,7 +248,7 @@ public class AnySilentContainer implements IAnySilentContainer { } // AnyChest only - SilentChest not active, container unsupported, or unnecessary. - if (!silentchest || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { + if (!silent || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { player.openContainer(tileInventory); return true; } @@ -266,7 +266,7 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public void deactivateContainer(final Player bukkitPlayer) { + public void deactivateContainer(@NotNull final Player bukkitPlayer) { if (this.playerInteractManagerGamemode == null) { return; } diff --git a/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/InventoryAccess.java b/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/InventoryAccess.java index eca054c..60022cf 100644 --- a/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/InventoryAccess.java +++ b/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/InventoryAccess.java @@ -23,11 +23,12 @@ import com.lishid.openinv.util.InternalAccessor; import net.minecraft.server.v1_13_R2.IInventory; import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftInventory; import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public ISpecialEnderChest getSpecialEnderChest(final Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull final Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -42,7 +43,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(final Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull final Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -57,7 +58,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(final Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull final Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -66,7 +67,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialPlayerInventory(final Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull final Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } diff --git a/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/PlayerDataManager.java b/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/PlayerDataManager.java index 8db7a45..79fd697 100644 --- a/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/PlayerDataManager.java +++ b/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/PlayerDataManager.java @@ -18,6 +18,8 @@ package com.lishid.openinv.internal.v1_13_R2; import com.lishid.openinv.internal.IPlayerDataManager; import com.mojang.authlib.GameProfile; +import java.util.Collection; +import java.util.UUID; import net.minecraft.server.v1_13_R2.DimensionManager; import net.minecraft.server.v1_13_R2.EntityPlayer; import net.minecraft.server.v1_13_R2.MinecraftServer; @@ -28,9 +30,7 @@ import org.bukkit.Server; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer; import org.bukkit.entity.Player; - -import java.util.Collection; -import java.util.UUID; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @@ -54,18 +54,19 @@ public class PlayerDataManager implements IPlayerDataManager { return nmsPlayer; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Bukkit.getOnlinePlayers(); } @Override - public OfflinePlayer getPlayerByID(final String identifier) { + public OfflinePlayer getPlayerByID(@NotNull final String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); // Ensure player is a real player, otherwise return null - if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { + if (!player.hasPlayedBefore() && !player.isOnline()) { return null; } return player; @@ -75,15 +76,16 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override - public String getPlayerDataID(final OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull final OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public Player loadPlayer(final OfflinePlayer offline) { + public Player loadPlayer(@NotNull final OfflinePlayer offline) { // Ensure player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } diff --git a/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/SpecialEnderChest.java b/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/SpecialEnderChest.java index 95e54e0..44969fb 100644 --- a/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/SpecialEnderChest.java +++ b/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/SpecialEnderChest.java @@ -17,17 +17,29 @@ package com.lishid.openinv.internal.v1_13_R2; import com.lishid.openinv.internal.ISpecialEnderChest; -import net.minecraft.server.v1_13_R2.*; +import java.util.List; +import javax.annotation.Nullable; +import net.minecraft.server.v1_13_R2.AutoRecipeOutput; +import net.minecraft.server.v1_13_R2.AutoRecipeStackManager; +import net.minecraft.server.v1_13_R2.ContainerUtil; +import net.minecraft.server.v1_13_R2.EntityHuman; +import net.minecraft.server.v1_13_R2.EntityPlayer; +import net.minecraft.server.v1_13_R2.IChatBaseComponent; +import net.minecraft.server.v1_13_R2.IInventory; +import net.minecraft.server.v1_13_R2.IInventoryListener; +import net.minecraft.server.v1_13_R2.InventoryEnderChest; +import net.minecraft.server.v1_13_R2.ItemStack; +import net.minecraft.server.v1_13_R2.NonNullList; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftInventory; import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; - -import javax.annotation.Nullable; -import java.util.List; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest implements IInventory, ISpecialEnderChest, AutoRecipeOutput { @@ -44,9 +56,31 @@ public class SpecialEnderChest implements IInventory, ISpecialEnderChest, AutoRe this.items = this.owner.getEnderChest().items; } + @NotNull @Override - public Inventory getBukkitInventory() { - return this.inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @NotNull + @Override + public Inventory getTopInventory() { + return inventory; + } + @NotNull + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @NotNull + @Override + public HumanEntity getPlayer() { + return viewer; + } + @NotNull + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override @@ -60,7 +94,7 @@ public class SpecialEnderChest implements IInventory, ISpecialEnderChest, AutoRe } @Override - public void setPlayerOnline(final Player player) { + public void setPlayerOnline(@NotNull final Player player) { if (!this.playerOnline) { try { this.owner = PlayerDataManager.getHandle(player); diff --git a/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/SpecialPlayerInventory.java b/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/SpecialPlayerInventory.java index ef47dba..cb904ff 100644 --- a/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/SpecialPlayerInventory.java +++ b/internal/v1_13_R2/src/main/java/com/lishid/openinv/internal/v1_13_R2/SpecialPlayerInventory.java @@ -18,6 +18,11 @@ package com.lishid.openinv.internal.v1_13_R2; import com.google.common.collect.ImmutableList; import com.lishid.openinv.internal.ISpecialPlayerInventory; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.function.Predicate; +import javax.annotation.Nullable; import net.minecraft.server.v1_13_R2.AutoRecipeStackManager; import net.minecraft.server.v1_13_R2.ChatMessage; import net.minecraft.server.v1_13_R2.ContainerUtil; @@ -42,14 +47,11 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftInventory; import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; - -import javax.annotation.Nullable; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.function.Predicate; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -68,7 +70,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP } @Override - public void setPlayerOnline(final Player player) { + public void setPlayerOnline(@NotNull final Player player) { if (!this.playerOnline) { EntityPlayer entityPlayer = PlayerDataManager.getHandle(player); entityPlayer.inventory.transaction.addAll(this.transaction); @@ -86,9 +88,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP return true; } + @NotNull @Override - public Inventory getBukkitInventory() { - return this.inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @NotNull + @Override + public Inventory getTopInventory() { + return inventory; + } + @NotNull + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @NotNull + @Override + public HumanEntity getPlayer() { + return viewer; + } + @NotNull + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override @@ -614,7 +638,7 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP int j = nbttagcompound.getByte("Slot") & 255; ItemStack itemstack = ItemStack.a(nbttagcompound); if (!itemstack.isEmpty()) { - if (j >= 0 && j < this.items.size()) { + if (j < this.items.size()) { this.items.set(j, itemstack); } else if (j >= 100 && j < this.armor.size() + 100) { this.armor.set(j - 100, itemstack); diff --git a/internal/v1_4_R1/pom.xml b/internal/v1_4_R1/pom.xml index fca07a5..98bd6b8 100644 --- a/internal/v1_4_R1/pom.xml +++ b/internal/v1_4_R1/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_4_R1 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/AnySilentContainer.java b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/AnySilentContainer.java index 8308155..052d011 100644 --- a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/AnySilentContainer.java +++ b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_4_R1; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_4_R1.AxisAlignedBB; import net.minecraft.server.v1_4_R1.BlockEnderChest; import net.minecraft.server.v1_4_R1.Container; @@ -34,43 +29,46 @@ import net.minecraft.server.v1_4_R1.Packet100OpenWindow; import net.minecraft.server.v1_4_R1.TileEntityChest; import net.minecraft.server.v1_4_R1.TileEntityEnderChest; import net.minecraft.server.v1_4_R1.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; + World world = PlayerDataManager.getHandle(bukkitPlayer).world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); // If block next to chest is chest and has a block or ocelot on top - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -93,18 +91,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -123,20 +121,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if (world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -160,12 +158,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/InventoryAccess.java b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/InventoryAccess.java index e452647..ebf7e28 100644 --- a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/InventoryAccess.java +++ b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_4_R1.IInventory; - import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/PlayerDataManager.java b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/PlayerDataManager.java index 071c429..827a3cf 100644 --- a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/PlayerDataManager.java +++ b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/PlayerDataManager.java @@ -16,30 +16,27 @@ package com.lishid.openinv.internal.v1_4_R1; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Arrays; import java.util.Collection; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_4_R1.EntityPlayer; import net.minecraft.server.v1_4_R1.MinecraftServer; import net.minecraft.server.v1_4_R1.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_4_R1.CraftServer; import org.bukkit.craftbukkit.v1_4_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -50,7 +47,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -59,13 +56,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getName(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); // Ensure player is a real player, otherwise return null if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { @@ -74,7 +72,8 @@ public class PlayerDataManager implements IPlayerDataManager { return player; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Arrays.asList(Bukkit.getOnlinePlayers()); } diff --git a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SilentContainerChest.java b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SilentContainerChest.java index 04be0cb..f4c436d 100644 --- a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SilentContainerChest.java +++ b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_4_R1.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); // Send close signal i2.f(); diff --git a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialEnderChest.java b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialEnderChest.java index 5deeee7..d662411 100644 --- a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialEnderChest.java +++ b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_4_R1; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_4_R1.EntityPlayer; import net.minecraft.server.v1_4_R1.IInventory; import net.minecraft.server.v1_4_R1.InventoryEnderChest; import net.minecraft.server.v1_4_R1.InventorySubcontainer; import net.minecraft.server.v1_4_R1.ItemStack; - import org.bukkit.craftbukkit.v1_4_R1.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_4_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -56,13 +55,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -71,7 +88,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialPlayerInventory.java b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialPlayerInventory.java index ca45c7a..5bd5233 100644 --- a/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialPlayerInventory.java +++ b/internal/v1_4_R1/src/main/java/com/lishid/openinv/internal/v1_4_R1/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_4_R1; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_4_R1.ItemStack; import net.minecraft.server.v1_4_R1.PlayerInventory; - import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_5_R2/pom.xml b/internal/v1_5_R2/pom.xml index 9412b40..0051f26 100644 --- a/internal/v1_5_R2/pom.xml +++ b/internal/v1_5_R2/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_5_R2 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/AnySilentContainer.java b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/AnySilentContainer.java index 57162f5..812c890 100644 --- a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/AnySilentContainer.java +++ b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_5_R2; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_5_R2.AxisAlignedBB; import net.minecraft.server.v1_5_R2.BlockEnderChest; import net.minecraft.server.v1_5_R2.Container; @@ -34,43 +29,46 @@ import net.minecraft.server.v1_5_R2.Packet100OpenWindow; import net.minecraft.server.v1_5_R2.TileEntityChest; import net.minecraft.server.v1_5_R2.TileEntityEnderChest; import net.minecraft.server.v1_5_R2.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_5_R2.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; + World world = PlayerDataManager.getHandle(bukkitPlayer).world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); // If block next to chest is chest and has a block or ocelot on top - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -93,18 +91,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -123,20 +121,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if (world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -160,12 +158,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/InventoryAccess.java b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/InventoryAccess.java index 487e8c7..4c4a9a8 100644 --- a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/InventoryAccess.java +++ b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_5_R2.IInventory; - import org.bukkit.craftbukkit.v1_5_R2.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/PlayerDataManager.java b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/PlayerDataManager.java index 58862d3..e6248c8 100644 --- a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/PlayerDataManager.java +++ b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/PlayerDataManager.java @@ -16,29 +16,26 @@ package com.lishid.openinv.internal.v1_5_R2; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Arrays; import java.util.Collection; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_5_R2.EntityPlayer; import net.minecraft.server.v1_5_R2.MinecraftServer; import net.minecraft.server.v1_5_R2.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_5_R2.CraftServer; import org.bukkit.craftbukkit.v1_5_R2.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -49,7 +46,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -58,13 +55,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getName(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); // Ensure player is a real player, otherwise return null if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { @@ -73,7 +71,8 @@ public class PlayerDataManager implements IPlayerDataManager { return player; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Arrays.asList(Bukkit.getOnlinePlayers()); } diff --git a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SilentContainerChest.java b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SilentContainerChest.java index f5832ee..0c6f634 100644 --- a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SilentContainerChest.java +++ b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_5_R2.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); // Send close signal i2.g(); diff --git a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialEnderChest.java b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialEnderChest.java index 375e0c4..7c835e6 100644 --- a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialEnderChest.java +++ b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_5_R2; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_5_R2.EntityPlayer; import net.minecraft.server.v1_5_R2.IInventory; import net.minecraft.server.v1_5_R2.InventoryEnderChest; import net.minecraft.server.v1_5_R2.InventorySubcontainer; import net.minecraft.server.v1_5_R2.ItemStack; - import org.bukkit.craftbukkit.v1_5_R2.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_5_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_5_R2.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -57,13 +56,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -72,7 +89,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialPlayerInventory.java b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialPlayerInventory.java index f599172..20f82d6 100644 --- a/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialPlayerInventory.java +++ b/internal/v1_5_R2/src/main/java/com/lishid/openinv/internal/v1_5_R2/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_5_R2; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_5_R2.ItemStack; import net.minecraft.server.v1_5_R2.PlayerInventory; - import org.bukkit.craftbukkit.v1_5_R2.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_5_R3/pom.xml b/internal/v1_5_R3/pom.xml index 3adfb30..41dcb0c 100644 --- a/internal/v1_5_R3/pom.xml +++ b/internal/v1_5_R3/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_5_R3 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/AnySilentContainer.java b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/AnySilentContainer.java index 6a68365..f138bcd 100644 --- a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/AnySilentContainer.java +++ b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_5_R3; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_5_R3.AxisAlignedBB; import net.minecraft.server.v1_5_R3.BlockEnderChest; import net.minecraft.server.v1_5_R3.Container; @@ -34,43 +29,46 @@ import net.minecraft.server.v1_5_R3.Packet100OpenWindow; import net.minecraft.server.v1_5_R3.TileEntityChest; import net.minecraft.server.v1_5_R3.TileEntityEnderChest; import net.minecraft.server.v1_5_R3.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; + World world = PlayerDataManager.getHandle(bukkitPlayer).world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); // If block next to chest is chest and has a block or ocelot on top - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -93,18 +91,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -123,20 +121,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if (world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -160,12 +158,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/InventoryAccess.java b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/InventoryAccess.java index 3177516..f7dab0f 100644 --- a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/InventoryAccess.java +++ b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_5_R3.IInventory; - import org.bukkit.craftbukkit.v1_5_R3.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/PlayerDataManager.java b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/PlayerDataManager.java index 455cfb1..1054c49 100644 --- a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/PlayerDataManager.java +++ b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/PlayerDataManager.java @@ -16,29 +16,26 @@ package com.lishid.openinv.internal.v1_5_R3; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Arrays; import java.util.Collection; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_5_R3.EntityPlayer; import net.minecraft.server.v1_5_R3.MinecraftServer; import net.minecraft.server.v1_5_R3.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_5_R3.CraftServer; import org.bukkit.craftbukkit.v1_5_R3.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -49,7 +46,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -58,13 +55,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getName(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); // Ensure player is a real player, otherwise return null if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { @@ -73,7 +71,8 @@ public class PlayerDataManager implements IPlayerDataManager { return player; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Arrays.asList(Bukkit.getOnlinePlayers()); } diff --git a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SilentContainerChest.java b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SilentContainerChest.java index b80ed18..a65a051 100644 --- a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SilentContainerChest.java +++ b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_5_R3.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); // Send close signal i2.g(); diff --git a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialEnderChest.java b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialEnderChest.java index 816e5b7..bc524e4 100644 --- a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialEnderChest.java +++ b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_5_R3; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_5_R3.EntityPlayer; import net.minecraft.server.v1_5_R3.IInventory; import net.minecraft.server.v1_5_R3.InventoryEnderChest; import net.minecraft.server.v1_5_R3.InventorySubcontainer; import net.minecraft.server.v1_5_R3.ItemStack; - import org.bukkit.craftbukkit.v1_5_R3.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_5_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_5_R3.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -57,13 +56,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -72,7 +89,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialPlayerInventory.java b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialPlayerInventory.java index a0b44d0..4f9703a 100644 --- a/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialPlayerInventory.java +++ b/internal/v1_5_R3/src/main/java/com/lishid/openinv/internal/v1_5_R3/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_5_R3; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_5_R3.ItemStack; import net.minecraft.server.v1_5_R3.PlayerInventory; - import org.bukkit.craftbukkit.v1_5_R3.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_6_R1/pom.xml b/internal/v1_6_R1/pom.xml index cea569b..72f6d38 100644 --- a/internal/v1_6_R1/pom.xml +++ b/internal/v1_6_R1/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_6_R1 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/AnySilentContainer.java b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/AnySilentContainer.java index 81ab633..8451e89 100644 --- a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/AnySilentContainer.java +++ b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_6_R1; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_6_R1.AxisAlignedBB; import net.minecraft.server.v1_6_R1.BlockEnderChest; import net.minecraft.server.v1_6_R1.Container; @@ -34,43 +29,46 @@ import net.minecraft.server.v1_6_R1.Packet100OpenWindow; import net.minecraft.server.v1_6_R1.TileEntityChest; import net.minecraft.server.v1_6_R1.TileEntityEnderChest; import net.minecraft.server.v1_6_R1.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_6_R1.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; + World world = PlayerDataManager.getHandle(bukkitPlayer).world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); // If block next to chest is chest and has a block or ocelot on top - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -93,18 +91,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -123,20 +121,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if (world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -160,12 +158,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/InventoryAccess.java b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/InventoryAccess.java index 11859fd..768f1b4 100644 --- a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/InventoryAccess.java +++ b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_6_R1.IInventory; - import org.bukkit.craftbukkit.v1_6_R1.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/PlayerDataManager.java b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/PlayerDataManager.java index fb7b230..75a55f8 100644 --- a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/PlayerDataManager.java +++ b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/PlayerDataManager.java @@ -16,29 +16,26 @@ package com.lishid.openinv.internal.v1_6_R1; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Arrays; import java.util.Collection; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_6_R1.EntityPlayer; import net.minecraft.server.v1_6_R1.MinecraftServer; import net.minecraft.server.v1_6_R1.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_6_R1.CraftServer; import org.bukkit.craftbukkit.v1_6_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -49,7 +46,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -58,13 +55,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getName(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); // Ensure player is a real player, otherwise return null if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { @@ -73,7 +71,8 @@ public class PlayerDataManager implements IPlayerDataManager { return player; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Arrays.asList(Bukkit.getOnlinePlayers()); } diff --git a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SilentContainerChest.java b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SilentContainerChest.java index 56630e2..1f17c6e 100644 --- a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SilentContainerChest.java +++ b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_6_R1.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); // Send close signal i2.g(); diff --git a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialEnderChest.java b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialEnderChest.java index 10534d4..8935f95 100644 --- a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialEnderChest.java +++ b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_6_R1; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_6_R1.EntityPlayer; import net.minecraft.server.v1_6_R1.IInventory; import net.minecraft.server.v1_6_R1.InventoryEnderChest; import net.minecraft.server.v1_6_R1.InventorySubcontainer; import net.minecraft.server.v1_6_R1.ItemStack; - import org.bukkit.craftbukkit.v1_6_R1.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_6_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_6_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -57,13 +56,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -72,7 +89,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialPlayerInventory.java b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialPlayerInventory.java index 7791a58..851024c 100644 --- a/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialPlayerInventory.java +++ b/internal/v1_6_R1/src/main/java/com/lishid/openinv/internal/v1_6_R1/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_6_R1; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_6_R1.ItemStack; import net.minecraft.server.v1_6_R1.PlayerInventory; - import org.bukkit.craftbukkit.v1_6_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_6_R2/pom.xml b/internal/v1_6_R2/pom.xml index ea26aeb..9fd049b 100644 --- a/internal/v1_6_R2/pom.xml +++ b/internal/v1_6_R2/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_6_R2 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/AnySilentContainer.java b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/AnySilentContainer.java index fd40053..63ae036 100644 --- a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/AnySilentContainer.java +++ b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_6_R2; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_6_R2.AxisAlignedBB; import net.minecraft.server.v1_6_R2.BlockEnderChest; import net.minecraft.server.v1_6_R2.Container; @@ -34,43 +29,46 @@ import net.minecraft.server.v1_6_R2.Packet100OpenWindow; import net.minecraft.server.v1_6_R2.TileEntityChest; import net.minecraft.server.v1_6_R2.TileEntityEnderChest; import net.minecraft.server.v1_6_R2.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_6_R2.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; + World world = PlayerDataManager.getHandle(bukkitPlayer).world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); // If block next to chest is chest and has a block or ocelot on top - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -93,18 +91,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -123,20 +121,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if (world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -160,12 +158,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/InventoryAccess.java b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/InventoryAccess.java index 24ea8a3..e01d6f0 100644 --- a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/InventoryAccess.java +++ b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_6_R2.IInventory; - import org.bukkit.craftbukkit.v1_6_R2.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/PlayerDataManager.java b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/PlayerDataManager.java index 100f447..2fdf434 100644 --- a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/PlayerDataManager.java +++ b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/PlayerDataManager.java @@ -16,29 +16,26 @@ package com.lishid.openinv.internal.v1_6_R2; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Arrays; import java.util.Collection; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_6_R2.EntityPlayer; import net.minecraft.server.v1_6_R2.MinecraftServer; import net.minecraft.server.v1_6_R2.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_6_R2.CraftServer; import org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -49,7 +46,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -58,13 +55,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getName(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); // Ensure player is a real player, otherwise return null if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { @@ -73,7 +71,8 @@ public class PlayerDataManager implements IPlayerDataManager { return player; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Arrays.asList(Bukkit.getOnlinePlayers()); } diff --git a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SilentContainerChest.java b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SilentContainerChest.java index f128e6b..426a6b3 100644 --- a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SilentContainerChest.java +++ b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_6_R2.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); // Send close signal i2.g(); diff --git a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialEnderChest.java b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialEnderChest.java index d0810d0..4ab38bf 100644 --- a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialEnderChest.java +++ b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_6_R2; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_6_R2.EntityPlayer; import net.minecraft.server.v1_6_R2.IInventory; import net.minecraft.server.v1_6_R2.InventoryEnderChest; import net.minecraft.server.v1_6_R2.InventorySubcontainer; import net.minecraft.server.v1_6_R2.ItemStack; - import org.bukkit.craftbukkit.v1_6_R2.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_6_R2.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -57,13 +56,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -72,7 +89,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialPlayerInventory.java b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialPlayerInventory.java index 48a6909..0c32d1c 100644 --- a/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialPlayerInventory.java +++ b/internal/v1_6_R2/src/main/java/com/lishid/openinv/internal/v1_6_R2/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_6_R2; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_6_R2.ItemStack; import net.minecraft.server.v1_6_R2.PlayerInventory; - import org.bukkit.craftbukkit.v1_6_R2.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_6_R3/pom.xml b/internal/v1_6_R3/pom.xml index 652fd68..791e004 100644 --- a/internal/v1_6_R3/pom.xml +++ b/internal/v1_6_R3/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_6_R3 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/AnySilentContainer.java b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/AnySilentContainer.java index 580de75..26f8921 100644 --- a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/AnySilentContainer.java +++ b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_6_R3; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_6_R3.AxisAlignedBB; import net.minecraft.server.v1_6_R3.BlockEnderChest; import net.minecraft.server.v1_6_R3.Container; @@ -34,43 +29,46 @@ import net.minecraft.server.v1_6_R3.Packet100OpenWindow; import net.minecraft.server.v1_6_R3.TileEntityChest; import net.minecraft.server.v1_6_R3.TileEntityEnderChest; import net.minecraft.server.v1_6_R3.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; + World world = PlayerDataManager.getHandle(bukkitPlayer).world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); // If block next to chest is chest and has a block or ocelot on top - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -93,18 +91,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -123,20 +121,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = world.getTypeId(block.getX(), block.getY(), block.getZ()); + int id = world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); - if (world.getTypeId(block.getX(), block.getY(), block.getZ() + 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if (world.getTypeId(block.getX(), block.getY(), block.getZ() - 1) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (world.getTypeId(block.getX() + 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (world.getTypeId(block.getX() - 1, block.getY(), block.getZ()) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if (world.getTypeId(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (world.getTypeId(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (world.getTypeId(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -160,12 +158,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/InventoryAccess.java b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/InventoryAccess.java index b11c4a0..ae411ec 100644 --- a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/InventoryAccess.java +++ b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_6_R3.IInventory; - import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/PlayerDataManager.java b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/PlayerDataManager.java index 4843ab3..5ae8ab7 100644 --- a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/PlayerDataManager.java +++ b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/PlayerDataManager.java @@ -16,29 +16,26 @@ package com.lishid.openinv.internal.v1_6_R3; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Arrays; import java.util.Collection; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_6_R3.EntityPlayer; import net.minecraft.server.v1_6_R3.MinecraftServer; import net.minecraft.server.v1_6_R3.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_6_R3.CraftServer; import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -49,7 +46,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -58,13 +55,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getName(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); // Ensure player is a real player, otherwise return null if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { @@ -73,7 +71,8 @@ public class PlayerDataManager implements IPlayerDataManager { return player; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Arrays.asList(Bukkit.getOnlinePlayers()); } diff --git a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SilentContainerChest.java b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SilentContainerChest.java index 9d6c56e..fc4f245 100644 --- a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SilentContainerChest.java +++ b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_6_R3.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); // Send close signal i2.g(); diff --git a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialEnderChest.java b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialEnderChest.java index a5dfeab..ff6f0c4 100644 --- a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialEnderChest.java +++ b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_6_R3; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_6_R3.EntityPlayer; import net.minecraft.server.v1_6_R3.IInventory; import net.minecraft.server.v1_6_R3.InventoryEnderChest; import net.minecraft.server.v1_6_R3.InventorySubcontainer; import net.minecraft.server.v1_6_R3.ItemStack; - import org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -57,13 +56,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -72,7 +89,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialPlayerInventory.java b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialPlayerInventory.java index a1d0702..1c4dfd0 100644 --- a/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialPlayerInventory.java +++ b/internal/v1_6_R3/src/main/java/com/lishid/openinv/internal/v1_6_R3/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_6_R3; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_6_R3.ItemStack; import net.minecraft.server.v1_6_R3.PlayerInventory; - import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_7_R1/pom.xml b/internal/v1_7_R1/pom.xml index 6d697b6..70f40a6 100644 --- a/internal/v1_7_R1/pom.xml +++ b/internal/v1_7_R1/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_7_R1 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/AnySilentContainer.java b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/AnySilentContainer.java index 3b31a04..0908f23 100644 --- a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/AnySilentContainer.java +++ b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_7_R1; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_7_R1.AxisAlignedBB; import net.minecraft.server.v1_7_R1.Block; import net.minecraft.server.v1_7_R1.BlockEnderChest; @@ -35,43 +30,45 @@ import net.minecraft.server.v1_7_R1.PacketPlayOutOpenWindow; import net.minecraft.server.v1_7_R1.TileEntityChest; import net.minecraft.server.v1_7_R1.TileEntityEnderChest; import net.minecraft.server.v1_7_R1.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; import org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull org.bukkit.block.Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull org.bukkit.block.Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; + World world = PlayerDataManager.getHandle(bukkitPlayer).world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = Block.b(world.getType(block.getX(), block.getY(), block.getZ())); + int id = Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ())); // If block next to chest is chest and has a block or ocelot on top - if (Block.b(world.getType(block.getX(), block.getY(), block.getZ() + 1)) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(Block.b(world.getType(block.getX(), block.getY(), block.getZ() - 1)) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (Block.b(world.getType(block.getX() + 1, block.getY(), block.getZ())) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (Block.b(world.getType(block.getX() - 1, block.getY(), block.getZ())) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1)) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (Block.b(world.getType(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (Block.b(world.getType(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -94,18 +91,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull org.bukkit.block.Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -124,20 +121,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = Block.b(world.getType(block.getX(), block.getY(), block.getZ())); + int id = Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ())); - if (Block.b(world.getType(block.getX(), block.getY(), block.getZ() + 1)) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if(Block.b(world.getType(block.getX(), block.getY(), block.getZ() - 1)) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (Block.b(world.getType(block.getX() + 1, block.getY(), block.getZ())) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (Block.b(world.getType(block.getX() - 1, block.getY(), block.getZ())) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if(Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1)) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (Block.b(world.getType(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (Block.b(world.getType(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -161,12 +158,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/InventoryAccess.java b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/InventoryAccess.java index 8490c0c..b814c1a 100644 --- a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/InventoryAccess.java +++ b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_7_R1.IInventory; - import org.bukkit.craftbukkit.v1_7_R1.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/PlayerDataManager.java b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/PlayerDataManager.java index ca746d8..a90e3e8 100644 --- a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/PlayerDataManager.java +++ b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/PlayerDataManager.java @@ -16,30 +16,27 @@ package com.lishid.openinv.internal.v1_7_R1; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Arrays; import java.util.Collection; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_7_R1.EntityPlayer; import net.minecraft.server.v1_7_R1.MinecraftServer; import net.minecraft.server.v1_7_R1.PlayerInteractManager; import net.minecraft.util.com.mojang.authlib.GameProfile; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_7_R1.CraftServer; import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -50,7 +47,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -59,13 +56,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getName(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); // Ensure player is a real player, otherwise return null if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { @@ -74,7 +72,8 @@ public class PlayerDataManager implements IPlayerDataManager { return player; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Arrays.asList(Bukkit.getOnlinePlayers()); } diff --git a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SilentContainerChest.java b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SilentContainerChest.java index 90bb62d..bb8c4f1 100644 --- a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SilentContainerChest.java +++ b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_7_R1.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); // Send close signal i2.l_(); diff --git a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialEnderChest.java b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialEnderChest.java index bfbb711..2427c47 100644 --- a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialEnderChest.java +++ b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_7_R1; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_7_R1.EntityPlayer; import net.minecraft.server.v1_7_R1.IInventory; import net.minecraft.server.v1_7_R1.InventoryEnderChest; import net.minecraft.server.v1_7_R1.InventorySubcontainer; import net.minecraft.server.v1_7_R1.ItemStack; - import org.bukkit.craftbukkit.v1_7_R1.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -57,13 +56,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -72,7 +89,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialPlayerInventory.java b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialPlayerInventory.java index b16870f..4ab6947 100644 --- a/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialPlayerInventory.java +++ b/internal/v1_7_R1/src/main/java/com/lishid/openinv/internal/v1_7_R1/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_7_R1; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_7_R1.ItemStack; import net.minecraft.server.v1_7_R1.PlayerInventory; - import org.bukkit.craftbukkit.v1_7_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_7_R2/pom.xml b/internal/v1_7_R2/pom.xml index cda25d8..75ed361 100644 --- a/internal/v1_7_R2/pom.xml +++ b/internal/v1_7_R2/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_7_R2 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/AnySilentContainer.java b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/AnySilentContainer.java index 622f2a2..18897db 100644 --- a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/AnySilentContainer.java +++ b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_7_R2; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_7_R2.AxisAlignedBB; import net.minecraft.server.v1_7_R2.Block; import net.minecraft.server.v1_7_R2.BlockEnderChest; @@ -35,43 +30,45 @@ import net.minecraft.server.v1_7_R2.PacketPlayOutOpenWindow; import net.minecraft.server.v1_7_R2.TileEntityChest; import net.minecraft.server.v1_7_R2.TileEntityEnderChest; import net.minecraft.server.v1_7_R2.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; import org.bukkit.craftbukkit.v1_7_R2.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull org.bukkit.block.Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull org.bukkit.block.Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; + World world = PlayerDataManager.getHandle(bukkitPlayer).world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = Block.b(world.getType(block.getX(), block.getY(), block.getZ())); + int id = Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ())); // If block next to chest is chest and has a block or ocelot on top - if (Block.b(world.getType(block.getX(), block.getY(), block.getZ() + 1)) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(Block.b(world.getType(block.getX(), block.getY(), block.getZ() - 1)) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (Block.b(world.getType(block.getX() + 1, block.getY(), block.getZ())) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (Block.b(world.getType(block.getX() - 1, block.getY(), block.getZ())) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1)) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (Block.b(world.getType(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (Block.b(world.getType(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -94,18 +91,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull org.bukkit.block.Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -124,20 +121,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = Block.b(world.getType(block.getX(), block.getY(), block.getZ())); + int id = Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ())); - if (Block.b(world.getType(block.getX(), block.getY(), block.getZ() + 1)) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if(Block.b(world.getType(block.getX(), block.getY(), block.getZ() - 1)) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (Block.b(world.getType(block.getX() + 1, block.getY(), block.getZ())) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (Block.b(world.getType(block.getX() - 1, block.getY(), block.getZ())) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if(Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1)) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (Block.b(world.getType(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (Block.b(world.getType(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -161,12 +158,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/InventoryAccess.java b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/InventoryAccess.java index 022379a..906fad9 100644 --- a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/InventoryAccess.java +++ b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_7_R2.IInventory; - import org.bukkit.craftbukkit.v1_7_R2.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/PlayerDataManager.java b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/PlayerDataManager.java index cfe40d5..f8100c0 100644 --- a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/PlayerDataManager.java +++ b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/PlayerDataManager.java @@ -16,31 +16,28 @@ package com.lishid.openinv.internal.v1_7_R2; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Arrays; import java.util.Collection; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_7_R2.EntityPlayer; import net.minecraft.server.v1_7_R2.MinecraftServer; import net.minecraft.server.v1_7_R2.PlayerInteractManager; import net.minecraft.util.com.mojang.authlib.GameProfile; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_7_R2.CraftServer; import org.bukkit.craftbukkit.v1_7_R2.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; @SuppressWarnings("deprecation") // Deprecated methods are used properly and will not change. public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -51,7 +48,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -60,13 +57,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getName(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); // Ensure player is a real player, otherwise return null if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { @@ -75,7 +73,8 @@ public class PlayerDataManager implements IPlayerDataManager { return player; } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Arrays.asList(Bukkit.getOnlinePlayers()); } diff --git a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SilentContainerChest.java b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SilentContainerChest.java index f04e1e3..fd28ed9 100644 --- a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SilentContainerChest.java +++ b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_7_R2.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); // Send close signal i2.l_(); diff --git a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialEnderChest.java b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialEnderChest.java index 4ee26f6..4807da1 100644 --- a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialEnderChest.java +++ b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_7_R2; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_7_R2.EntityPlayer; import net.minecraft.server.v1_7_R2.IInventory; import net.minecraft.server.v1_7_R2.InventoryEnderChest; import net.minecraft.server.v1_7_R2.InventorySubcontainer; import net.minecraft.server.v1_7_R2.ItemStack; - import org.bukkit.craftbukkit.v1_7_R2.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_7_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R2.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -57,13 +56,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -72,7 +89,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialPlayerInventory.java b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialPlayerInventory.java index 6302cb6..4185d03 100644 --- a/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialPlayerInventory.java +++ b/internal/v1_7_R2/src/main/java/com/lishid/openinv/internal/v1_7_R2/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_7_R2; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_7_R2.ItemStack; import net.minecraft.server.v1_7_R2.PlayerInventory; - import org.bukkit.craftbukkit.v1_7_R2.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_7_R3/pom.xml b/internal/v1_7_R3/pom.xml index c07bf14..5610e64 100644 --- a/internal/v1_7_R3/pom.xml +++ b/internal/v1_7_R3/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_7_R3 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/AnySilentContainer.java b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/AnySilentContainer.java index 8d13937..219e93a 100644 --- a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/AnySilentContainer.java +++ b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_7_R3; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_7_R3.AxisAlignedBB; import net.minecraft.server.v1_7_R3.Block; import net.minecraft.server.v1_7_R3.BlockEnderChest; @@ -35,43 +30,46 @@ import net.minecraft.server.v1_7_R3.PacketPlayOutOpenWindow; import net.minecraft.server.v1_7_R3.TileEntityChest; import net.minecraft.server.v1_7_R3.TileEntityEnderChest; import net.minecraft.server.v1_7_R3.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; import org.bukkit.craftbukkit.v1_7_R3.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull org.bukkit.block.Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull org.bukkit.block.Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); World world = player.world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = Block.b(world.getType(block.getX(), block.getY(), block.getZ())); + int id = Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ())); // If block next to chest is chest and has a block or ocelot on top - if (Block.b(world.getType(block.getX(), block.getY(), block.getZ() + 1)) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(Block.b(world.getType(block.getX(), block.getY(), block.getZ() - 1)) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (Block.b(world.getType(block.getX() + 1, block.getY(), block.getZ())) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (Block.b(world.getType(block.getX() - 1, block.getY(), block.getZ())) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1)) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (Block.b(world.getType(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (Block.b(world.getType(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -94,18 +92,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull org.bukkit.block.Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -124,20 +122,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = Block.b(world.getType(block.getX(), block.getY(), block.getZ())); + int id = Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ())); - if (Block.b(world.getType(block.getX(), block.getY(), block.getZ() + 1)) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if(Block.b(world.getType(block.getX(), block.getY(), block.getZ() - 1)) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (Block.b(world.getType(block.getX() + 1, block.getY(), block.getZ())) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (Block.b(world.getType(block.getX() - 1, block.getY(), block.getZ())) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if(Block.b(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1)) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (Block.b(world.getType(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (Block.b(world.getType(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -161,12 +159,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/InventoryAccess.java b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/InventoryAccess.java index bdce49a..aa0cacb 100644 --- a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/InventoryAccess.java +++ b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_7_R3.IInventory; - import org.bukkit.craftbukkit.v1_7_R3.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/PlayerDataManager.java b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/PlayerDataManager.java index 3fa9363..eec7474 100644 --- a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/PlayerDataManager.java +++ b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/PlayerDataManager.java @@ -16,31 +16,28 @@ package com.lishid.openinv.internal.v1_7_R3; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Arrays; import java.util.Collection; import java.util.UUID; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_7_R3.EntityPlayer; import net.minecraft.server.v1_7_R3.MinecraftServer; import net.minecraft.server.v1_7_R3.PlayerInteractManager; import net.minecraft.util.com.mojang.authlib.GameProfile; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_7_R3.CraftServer; import org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -51,7 +48,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -60,13 +57,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); @@ -81,7 +79,8 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Arrays.asList(Bukkit.getOnlinePlayers()); } diff --git a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SilentContainerChest.java b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SilentContainerChest.java index 7397564..57d88c9 100644 --- a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SilentContainerChest.java +++ b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_7_R3.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); i2.l_(); } diff --git a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialEnderChest.java b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialEnderChest.java index 0110821..90041f3 100644 --- a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialEnderChest.java +++ b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_7_R3; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_7_R3.EntityPlayer; import net.minecraft.server.v1_7_R3.IInventory; import net.minecraft.server.v1_7_R3.InventoryEnderChest; import net.minecraft.server.v1_7_R3.InventorySubcontainer; import net.minecraft.server.v1_7_R3.ItemStack; - import org.bukkit.craftbukkit.v1_7_R3.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R3.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -57,13 +56,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -72,7 +89,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialPlayerInventory.java b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialPlayerInventory.java index 18c1797..23e7a7d 100644 --- a/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialPlayerInventory.java +++ b/internal/v1_7_R3/src/main/java/com/lishid/openinv/internal/v1_7_R3/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_7_R3; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_7_R3.ItemStack; import net.minecraft.server.v1_7_R3.PlayerInventory; - import org.bukkit.craftbukkit.v1_7_R3.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_7_R4/pom.xml b/internal/v1_7_R4/pom.xml index 1a1d7fe..807d3bf 100644 --- a/internal/v1_7_R4/pom.xml +++ b/internal/v1_7_R4/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_7_R4 @@ -43,7 +43,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/AnySilentContainer.java b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/AnySilentContainer.java index 4a967c5..17d8e11 100644 --- a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/AnySilentContainer.java +++ b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/AnySilentContainer.java @@ -17,11 +17,6 @@ package com.lishid.openinv.internal.v1_7_R4; import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_7_R4.AxisAlignedBB; import net.minecraft.server.v1_7_R4.Block; import net.minecraft.server.v1_7_R4.BlockEnderChest; @@ -35,43 +30,45 @@ import net.minecraft.server.v1_7_R4.PacketPlayOutOpenWindow; import net.minecraft.server.v1_7_R4.TileEntityChest; import net.minecraft.server.v1_7_R4.TileEntityEnderChest; import net.minecraft.server.v1_7_R4.World; - +import org.bukkit.ChatColor; +import org.bukkit.Material; import org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull org.bukkit.block.Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block block) { + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull org.bukkit.block.Block bukkitBlock) { // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; + World world = PlayerDataManager.getHandle(bukkitPlayer).world; - if (block instanceof BlockEnderChest) { + if (bukkitBlock instanceof BlockEnderChest) { // Ender chests are not blocked by ocelots. - return world.t(block.getX(), block.getY() + 1, block.getZ()); + return world.t(bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ()); } // If block or ocelot on top - if (isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ())) { + if (isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ())) { return true; } - int id = Block.getId(world.getType(block.getX(), block.getY(), block.getZ())); + int id = Block.getId(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ())); // If block next to chest is chest and has a block or ocelot on top - if (Block.getId(world.getType(block.getX(), block.getY(), block.getZ() + 1)) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() + 1); - } else if(Block.getId(world.getType(block.getX(), block.getY(), block.getZ() - 1)) == id) { - return isBlockedChest(world, block.getX(), block.getY() + 1, block.getZ() - 1); - } else if (Block.getId(world.getType(block.getX() + 1, block.getY(), block.getZ())) == id) { - return isBlockedChest(world, block.getX() + 1, block.getY() + 1, block.getZ()); - } else if (Block.getId(world.getType(block.getX() - 1, block.getY(), block.getZ())) == id) { - return isBlockedChest(world, block.getX() - 1, block.getY() + 1, block.getZ()); + if (Block.getId(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() + 1); + } else if(Block.getId(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1)) == id) { + return isBlockedChest(world, bukkitBlock.getX(), bukkitBlock.getY() + 1, bukkitBlock.getZ() - 1); + } else if (Block.getId(world.getType(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + return isBlockedChest(world, bukkitBlock.getX() + 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); + } else if (Block.getId(world.getType(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + return isBlockedChest(world, bukkitBlock.getX() - 1, bukkitBlock.getY() + 1, bukkitBlock.getZ()); } return false; @@ -94,18 +91,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block block) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull org.bukkit.block.Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && block.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - Object tile = world.getTileEntity(block.getX(), block.getY(), block.getZ()); + Object tile = world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); if (tile == null) { return false; @@ -124,20 +121,20 @@ public class AnySilentContainer implements IAnySilentContainer { } IInventory inventory = (IInventory) tile; - int id = Block.getId(world.getType(block.getX(), block.getY(), block.getZ())); + int id = Block.getId(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ())); - if (Block.getId(world.getType(block.getX(), block.getY(), block.getZ() + 1)) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() + 1)); - } else if(Block.getId(world.getType(block.getX(), block.getY(), block.getZ() - 1)) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX(), block.getY(), block.getZ() - 1), inventory); - } else if (Block.getId(world.getType(block.getX() + 1, block.getY(), block.getZ())) == id) { - inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(block.getX() + 1, block.getY(), block.getZ())); - } else if (Block.getId(world.getType(block.getX() - 1, block.getY(), block.getZ())) == id) { - inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(block.getX() - 1, block.getY(), block.getZ()), inventory); + if (Block.getId(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() + 1)); + } else if(Block.getId(world.getType(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1)) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ() - 1), inventory); + } else if (Block.getId(world.getType(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + inventory = new InventoryLargeChest("container.chestDouble", inventory, (TileEntityChest) world.getTileEntity(bukkitBlock.getX() + 1, bukkitBlock.getY(), bukkitBlock.getZ())); + } else if (Block.getId(world.getType(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ())) == id) { + inventory = new InventoryLargeChest("container.chestDouble", (TileEntityChest) world.getTileEntity(bukkitBlock.getX() - 1, bukkitBlock.getY(), bukkitBlock.getZ()), inventory); } // AnyChest only - if (!silentchest) { + if (!silent) { player.openContainer(inventory); return true; } @@ -161,12 +158,12 @@ public class AnySilentContainer implements IAnySilentContainer { return true; } catch (Exception e) { e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent container."); + bukkitPlayer.sendMessage(ChatColor.RED + "Error while sending silent container."); return false; } } @Override - public void deactivateContainer(final Player bukkitPlayer) {} + public void deactivateContainer(@NotNull final Player bukkitPlayer) {} } diff --git a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/InventoryAccess.java b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/InventoryAccess.java index fd7c8e1..9027674 100644 --- a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/InventoryAccess.java +++ b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_7_R4.IInventory; - import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/PlayerDataManager.java b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/PlayerDataManager.java index acddbdf..ba130ed 100644 --- a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/PlayerDataManager.java +++ b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/PlayerDataManager.java @@ -16,30 +16,27 @@ package com.lishid.openinv.internal.v1_7_R4; +import com.lishid.openinv.internal.IPlayerDataManager; import java.util.Collection; import java.util.UUID; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_7_R4.EntityPlayer; import net.minecraft.server.v1_7_R4.MinecraftServer; import net.minecraft.server.v1_7_R4.PlayerInteractManager; import net.minecraft.util.com.mojang.authlib.GameProfile; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_7_R4.CraftServer; import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -50,7 +47,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -59,13 +56,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); @@ -80,7 +78,8 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Bukkit.getOnlinePlayers(); } diff --git a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SilentContainerChest.java b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SilentContainerChest.java index 0126208..47e27c3 100644 --- a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SilentContainerChest.java +++ b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SilentContainerChest.java @@ -24,7 +24,7 @@ import net.minecraft.server.v1_7_R4.PlayerInventory; class SilentContainerChest extends ContainerChest { - public SilentContainerChest(IInventory i1, IInventory i2) { + SilentContainerChest(IInventory i1, IInventory i2) { super(i1, i2); // Send close signal i2.closeContainer(); diff --git a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialEnderChest.java b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialEnderChest.java index 78010da..9fde84f 100644 --- a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialEnderChest.java +++ b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialEnderChest.java @@ -16,26 +16,25 @@ package com.lishid.openinv.internal.v1_7_R4; +import com.lishid.openinv.internal.ISpecialEnderChest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; - -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - import net.minecraft.server.v1_7_R4.EntityPlayer; import net.minecraft.server.v1_7_R4.IInventory; import net.minecraft.server.v1_7_R4.InventoryEnderChest; import net.minecraft.server.v1_7_R4.InventorySubcontainer; import net.minecraft.server.v1_7_R4.ItemStack; - import org.bukkit.craftbukkit.v1_7_R4.entity.CraftHumanEntity; import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -57,13 +56,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -72,7 +89,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialPlayerInventory.java b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialPlayerInventory.java index b8925a3..62612e5 100644 --- a/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialPlayerInventory.java +++ b/internal/v1_7_R4/src/main/java/com/lishid/openinv/internal/v1_7_R4/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_7_R4; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_7_R4.ItemStack; import net.minecraft.server.v1_7_R4.PlayerInventory; - import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_8_R1/pom.xml b/internal/v1_8_R1/pom.xml index 1802d0f..166d811 100644 --- a/internal/v1_8_R1/pom.xml +++ b/internal/v1_8_R1/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_8_R1 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/AnySilentContainer.java b/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/AnySilentContainer.java index 12009d1..05e1b99 100644 --- a/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/AnySilentContainer.java +++ b/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/AnySilentContainer.java @@ -16,14 +16,8 @@ package com.lishid.openinv.internal.v1_8_R1; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.inventory.InventoryView; - +import java.lang.reflect.Field; import net.minecraft.server.v1_8_R1.AxisAlignedBB; import net.minecraft.server.v1_8_R1.Block; import net.minecraft.server.v1_8_R1.BlockChest; @@ -41,6 +35,10 @@ import net.minecraft.server.v1_8_R1.TileEntity; import net.minecraft.server.v1_8_R1.TileEntityChest; import net.minecraft.server.v1_8_R1.TileEntityEnderChest; import net.minecraft.server.v1_8_R1.World; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @@ -57,15 +55,15 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull org.bukkit.block.Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block b) { - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull org.bukkit.block.Block bukkitBlock) { + + World world = PlayerDataManager.getHandle(bukkitPlayer).world; + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Block block = world.getType(blockPosition).getBlock(); if (block instanceof BlockEnderChest) { @@ -125,18 +123,18 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block b) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silentchest, @NotNull org.bukkit.block.Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is API-only - if (silentchest && b.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silentchest && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); return true; } World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Object tile = world.getTileEntity(blockPosition); if (tile == null) { @@ -207,7 +205,7 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public void deactivateContainer(final Player bukkitPlayer) { + public void deactivateContainer(@NotNull final Player bukkitPlayer) { if (this.playerInteractManagerGamemode == null) { return; } diff --git a/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/InventoryAccess.java b/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/InventoryAccess.java index 7597149..7cdf976 100644 --- a/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/InventoryAccess.java +++ b/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_8_R1.IInventory; - import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/PlayerDataManager.java b/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/PlayerDataManager.java index a9ee9f8..413eab4 100644 --- a/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/PlayerDataManager.java +++ b/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/PlayerDataManager.java @@ -16,31 +16,27 @@ package com.lishid.openinv.internal.v1_8_R1; +import com.lishid.openinv.internal.IPlayerDataManager; +import com.mojang.authlib.GameProfile; import java.util.Collection; import java.util.UUID; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import com.mojang.authlib.GameProfile; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_8_R1.EntityPlayer; import net.minecraft.server.v1_8_R1.MinecraftServer; import net.minecraft.server.v1_8_R1.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_8_R1.CraftServer; import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -51,7 +47,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -60,13 +56,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); @@ -81,7 +78,8 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Bukkit.getOnlinePlayers(); } diff --git a/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialEnderChest.java b/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialEnderChest.java index 9e28b7a..9159ccf 100644 --- a/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialEnderChest.java +++ b/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialEnderChest.java @@ -16,19 +16,19 @@ package com.lishid.openinv.internal.v1_8_R1; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - +import java.lang.reflect.Field; import net.minecraft.server.v1_8_R1.EntityPlayer; import net.minecraft.server.v1_8_R1.IInventory; import net.minecraft.server.v1_8_R1.InventoryEnderChest; import net.minecraft.server.v1_8_R1.InventorySubcontainer; - import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -47,13 +47,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -62,7 +80,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialPlayerInventory.java b/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialPlayerInventory.java index ce38472..5a98553 100644 --- a/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialPlayerInventory.java +++ b/internal/v1_8_R1/src/main/java/com/lishid/openinv/internal/v1_8_R1/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_8_R1; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_8_R1.ItemStack; import net.minecraft.server.v1_8_R1.PlayerInventory; - import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_8_R2/pom.xml b/internal/v1_8_R2/pom.xml index 7d2419f..c076d42 100644 --- a/internal/v1_8_R2/pom.xml +++ b/internal/v1_8_R2/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_8_R2 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/AnySilentContainer.java b/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/AnySilentContainer.java index 3e08935..2169fbf 100644 --- a/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/AnySilentContainer.java +++ b/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/AnySilentContainer.java @@ -16,15 +16,8 @@ package com.lishid.openinv.internal.v1_8_R2; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.IAnySilentContainer; - -import net.minecraft.server.v1_8_R2.WorldSettings; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.inventory.InventoryView; - +import java.lang.reflect.Field; import net.minecraft.server.v1_8_R2.AxisAlignedBB; import net.minecraft.server.v1_8_R2.Block; import net.minecraft.server.v1_8_R2.BlockChest; @@ -43,7 +36,12 @@ import net.minecraft.server.v1_8_R2.TileEntity; import net.minecraft.server.v1_8_R2.TileEntityChest; import net.minecraft.server.v1_8_R2.TileEntityEnderChest; import net.minecraft.server.v1_8_R2.World; +import net.minecraft.server.v1_8_R2.WorldSettings; import net.minecraft.server.v1_8_R2.WorldSettings.EnumGamemode; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @@ -60,15 +58,15 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull org.bukkit.block.Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block b) { - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull org.bukkit.block.Block bukkitBlock) { + + World world = PlayerDataManager.getHandle(bukkitPlayer).world; + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Block block = world.getType(blockPosition).getBlock(); if (block instanceof BlockEnderChest) { @@ -123,19 +121,19 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block b) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull org.bukkit.block.Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is pretty much API-only - if (silentchest && b.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); player.b(StatisticList.V); return true; } World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Object tile = world.getTileEntity(blockPosition); if (tile == null) { @@ -191,7 +189,7 @@ public class AnySilentContainer implements IAnySilentContainer { } // AnyChest only - SilentChest not active, container unsupported, or unnecessary. - if (!silentchest || player.playerInteractManager.getGameMode() == WorldSettings.EnumGamemode.SPECTATOR) { + if (!silent || player.playerInteractManager.getGameMode() == WorldSettings.EnumGamemode.SPECTATOR) { player.openContainer(tileInventory); return true; } @@ -209,7 +207,7 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public void deactivateContainer(final Player bukkitPlayer) { + public void deactivateContainer(@NotNull final Player bukkitPlayer) { if (this.playerInteractManagerGamemode == null) { return; } diff --git a/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/InventoryAccess.java b/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/InventoryAccess.java index 0c02956..ff9736e 100644 --- a/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/InventoryAccess.java +++ b/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_8_R2.IInventory; - import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/PlayerDataManager.java b/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/PlayerDataManager.java index a81b0cf..3ba11c6 100644 --- a/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/PlayerDataManager.java +++ b/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/PlayerDataManager.java @@ -16,31 +16,27 @@ package com.lishid.openinv.internal.v1_8_R2; +import com.lishid.openinv.internal.IPlayerDataManager; +import com.mojang.authlib.GameProfile; import java.util.Collection; import java.util.UUID; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import com.mojang.authlib.GameProfile; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_8_R2.EntityPlayer; import net.minecraft.server.v1_8_R2.MinecraftServer; import net.minecraft.server.v1_8_R2.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_8_R2.CraftServer; import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -51,7 +47,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -60,13 +56,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); @@ -81,7 +78,8 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Bukkit.getOnlinePlayers(); } diff --git a/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialEnderChest.java b/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialEnderChest.java index 4c9f3b8..9fc0fdf 100644 --- a/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialEnderChest.java +++ b/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialEnderChest.java @@ -16,19 +16,19 @@ package com.lishid.openinv.internal.v1_8_R2; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - +import java.lang.reflect.Field; import net.minecraft.server.v1_8_R2.EntityPlayer; import net.minecraft.server.v1_8_R2.IInventory; import net.minecraft.server.v1_8_R2.InventoryEnderChest; import net.minecraft.server.v1_8_R2.InventorySubcontainer; - import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -47,13 +47,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -62,7 +80,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialPlayerInventory.java b/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialPlayerInventory.java index cb12205..16dd136 100644 --- a/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialPlayerInventory.java +++ b/internal/v1_8_R2/src/main/java/com/lishid/openinv/internal/v1_8_R2/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_8_R2; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_8_R2.ItemStack; import net.minecraft.server.v1_8_R2.PlayerInventory; - import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_8_R3/pom.xml b/internal/v1_8_R3/pom.xml index 851a9ae..61e67f1 100644 --- a/internal/v1_8_R3/pom.xml +++ b/internal/v1_8_R3/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_8_R3 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/AnySilentContainer.java b/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/AnySilentContainer.java index d252d7e..e574d51 100644 --- a/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/AnySilentContainer.java +++ b/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/AnySilentContainer.java @@ -16,14 +16,8 @@ package com.lishid.openinv.internal.v1_8_R3; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.inventory.InventoryView; - +import java.lang.reflect.Field; import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockChest; @@ -43,6 +37,10 @@ import net.minecraft.server.v1_8_R3.TileEntityChest; import net.minecraft.server.v1_8_R3.TileEntityEnderChest; import net.minecraft.server.v1_8_R3.World; import net.minecraft.server.v1_8_R3.WorldSettings.EnumGamemode; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @@ -59,15 +57,15 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull org.bukkit.block.Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block b) { - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull org.bukkit.block.Block bukkitBlock) { + + World world = PlayerDataManager.getHandle(bukkitPlayer).world; + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Block block = world.getType(blockPosition).getBlock(); if (block instanceof BlockEnderChest) { @@ -122,19 +120,19 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block b) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull org.bukkit.block.Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is pretty much API-only - if (silentchest && b.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); player.b(StatisticList.V); return true; } World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Object tile = world.getTileEntity(blockPosition); if (tile == null) { @@ -190,7 +188,7 @@ public class AnySilentContainer implements IAnySilentContainer { } // AnyChest only - SilentChest not active, container unsupported, or unnecessary. - if (!silentchest || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { + if (!silent || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { player.openContainer(tileInventory); return true; } @@ -208,7 +206,7 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public void deactivateContainer(final Player bukkitPlayer) { + public void deactivateContainer(@NotNull final Player bukkitPlayer) { if (this.playerInteractManagerGamemode == null) { return; } diff --git a/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/InventoryAccess.java b/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/InventoryAccess.java index 5fe208d..537437a 100644 --- a/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/InventoryAccess.java +++ b/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_8_R3.IInventory; - import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/PlayerDataManager.java b/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/PlayerDataManager.java index ee1b091..85852fd 100644 --- a/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/PlayerDataManager.java +++ b/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/PlayerDataManager.java @@ -16,31 +16,27 @@ package com.lishid.openinv.internal.v1_8_R3; +import com.lishid.openinv.internal.IPlayerDataManager; +import com.mojang.authlib.GameProfile; import java.util.Collection; import java.util.UUID; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import com.mojang.authlib.GameProfile; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_8_R3.EntityPlayer; import net.minecraft.server.v1_8_R3.MinecraftServer; import net.minecraft.server.v1_8_R3.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_8_R3.CraftServer; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -51,7 +47,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -60,13 +56,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); @@ -81,7 +78,8 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Bukkit.getOnlinePlayers(); } diff --git a/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialEnderChest.java b/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialEnderChest.java index 3cabcd2..159af2a 100644 --- a/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialEnderChest.java +++ b/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialEnderChest.java @@ -16,19 +16,19 @@ package com.lishid.openinv.internal.v1_8_R3; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - +import java.lang.reflect.Field; import net.minecraft.server.v1_8_R3.EntityPlayer; import net.minecraft.server.v1_8_R3.IInventory; import net.minecraft.server.v1_8_R3.InventoryEnderChest; import net.minecraft.server.v1_8_R3.InventorySubcontainer; - import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -47,13 +47,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -62,7 +80,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialPlayerInventory.java b/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialPlayerInventory.java index c38d875..960779f 100644 --- a/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialPlayerInventory.java +++ b/internal/v1_8_R3/src/main/java/com/lishid/openinv/internal/v1_8_R3/SpecialPlayerInventory.java @@ -17,14 +17,15 @@ package com.lishid.openinv.internal.v1_8_R3; import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_8_R3.ItemStack; import net.minecraft.server.v1_8_R3.PlayerInventory; - import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -39,13 +40,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP this.armor = player.inventory.armor; } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); this.player.inventory.items = this.items; diff --git a/internal/v1_9_R1/pom.xml b/internal/v1_9_R1/pom.xml index dcc4b9d..f196a99 100644 --- a/internal/v1_9_R1/pom.xml +++ b/internal/v1_9_R1/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_9_R1 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/AnySilentContainer.java b/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/AnySilentContainer.java index 6ac66fb..fe27588 100644 --- a/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/AnySilentContainer.java +++ b/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/AnySilentContainer.java @@ -16,14 +16,8 @@ package com.lishid.openinv.internal.v1_9_R1; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.inventory.InventoryView; - +import java.lang.reflect.Field; import net.minecraft.server.v1_9_R1.AxisAlignedBB; import net.minecraft.server.v1_9_R1.Block; import net.minecraft.server.v1_9_R1.BlockChest; @@ -43,6 +37,10 @@ import net.minecraft.server.v1_9_R1.TileEntityChest; import net.minecraft.server.v1_9_R1.TileEntityEnderChest; import net.minecraft.server.v1_9_R1.World; import net.minecraft.server.v1_9_R1.WorldSettings.EnumGamemode; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @@ -59,15 +57,15 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull org.bukkit.block.Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block b) { - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull org.bukkit.block.Block bukkitBlock) { + + World world = PlayerDataManager.getHandle(bukkitPlayer).world; + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Block block = world.getType(blockPosition).getBlock(); if (block instanceof BlockEnderChest) { @@ -122,19 +120,19 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block b) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull org.bukkit.block.Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is pretty much API-only - if (silentchest && b.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); player.b(StatisticList.X); return true; } World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Object tile = world.getTileEntity(blockPosition); if (tile == null) { @@ -190,7 +188,7 @@ public class AnySilentContainer implements IAnySilentContainer { } // AnyChest only - SilentChest not active, container unsupported, or unnecessary. - if (!silentchest || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { + if (!silent || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { player.openContainer(tileInventory); return true; } @@ -208,7 +206,7 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public void deactivateContainer(final Player bukkitPlayer) { + public void deactivateContainer(@NotNull final Player bukkitPlayer) { if (this.playerInteractManagerGamemode == null) { return; } diff --git a/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/InventoryAccess.java b/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/InventoryAccess.java index 991df8a..0849e07 100644 --- a/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/InventoryAccess.java +++ b/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_9_R1.IInventory; - import org.bukkit.craftbukkit.v1_9_R1.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/PlayerDataManager.java b/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/PlayerDataManager.java index 43db944..b7dd8b2 100644 --- a/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/PlayerDataManager.java +++ b/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/PlayerDataManager.java @@ -16,31 +16,27 @@ package com.lishid.openinv.internal.v1_9_R1; +import com.lishid.openinv.internal.IPlayerDataManager; +import com.mojang.authlib.GameProfile; import java.util.Collection; import java.util.UUID; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import com.mojang.authlib.GameProfile; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_9_R1.EntityPlayer; import net.minecraft.server.v1_9_R1.MinecraftServer; import net.minecraft.server.v1_9_R1.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_9_R1.CraftServer; import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure the player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -51,7 +47,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -60,13 +56,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); @@ -81,7 +78,8 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Bukkit.getOnlinePlayers(); } diff --git a/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialEnderChest.java b/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialEnderChest.java index ee7d2dc..d1b10ef 100644 --- a/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialEnderChest.java +++ b/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialEnderChest.java @@ -16,19 +16,19 @@ package com.lishid.openinv.internal.v1_9_R1; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - +import java.lang.reflect.Field; import net.minecraft.server.v1_9_R1.EntityPlayer; import net.minecraft.server.v1_9_R1.IInventory; import net.minecraft.server.v1_9_R1.InventoryEnderChest; import net.minecraft.server.v1_9_R1.InventorySubcontainer; - import org.bukkit.craftbukkit.v1_9_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -47,13 +47,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -62,7 +80,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialPlayerInventory.java b/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialPlayerInventory.java index 1e3f8de..9dfc2b9 100644 --- a/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialPlayerInventory.java +++ b/internal/v1_9_R1/src/main/java/com/lishid/openinv/internal/v1_9_R1/SpecialPlayerInventory.java @@ -16,18 +16,18 @@ package com.lishid.openinv.internal.v1_9_R1; +import com.lishid.openinv.internal.ISpecialPlayerInventory; import java.lang.reflect.Field; import java.lang.reflect.Modifier; - -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_9_R1.ItemStack; import net.minecraft.server.v1_9_R1.PlayerInventory; - import org.bukkit.craftbukkit.v1_9_R1.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -78,13 +78,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP } } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); setItemArrays(this.player.inventory, items, armor, extraSlots); diff --git a/internal/v1_9_R2/pom.xml b/internal/v1_9_R2/pom.xml index 89c032d..bafa59f 100644 --- a/internal/v1_9_R2/pom.xml +++ b/internal/v1_9_R2/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvinternal - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvadapter1_9_R2 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/AnySilentContainer.java b/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/AnySilentContainer.java index 45f63c4..4ca5e61 100644 --- a/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/AnySilentContainer.java +++ b/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/AnySilentContainer.java @@ -16,14 +16,8 @@ package com.lishid.openinv.internal.v1_9_R2; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.IAnySilentContainer; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.inventory.InventoryView; - +import java.lang.reflect.Field; import net.minecraft.server.v1_9_R2.AxisAlignedBB; import net.minecraft.server.v1_9_R2.Block; import net.minecraft.server.v1_9_R2.BlockChest; @@ -43,6 +37,10 @@ import net.minecraft.server.v1_9_R2.TileEntityChest; import net.minecraft.server.v1_9_R2.TileEntityEnderChest; import net.minecraft.server.v1_9_R2.World; import net.minecraft.server.v1_9_R2.WorldSettings.EnumGamemode; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class AnySilentContainer implements IAnySilentContainer { @@ -59,15 +57,15 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean isAnySilentContainer(org.bukkit.block.Block block) { - return block.getType() == Material.ENDER_CHEST || block.getState() instanceof org.bukkit.block.Chest; + public boolean isAnySilentContainer(@NotNull org.bukkit.block.Block bukkitBlock) { + return bukkitBlock.getType() == Material.ENDER_CHEST || bukkitBlock.getState() instanceof org.bukkit.block.Chest; } @Override - public boolean isAnyContainerNeeded(Player p, org.bukkit.block.Block b) { - EntityPlayer player = PlayerDataManager.getHandle(p); - World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + public boolean isAnyContainerNeeded(@NotNull Player bukkitPlayer, @NotNull org.bukkit.block.Block bukkitBlock) { + + World world = PlayerDataManager.getHandle(bukkitPlayer).world; + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Block block = world.getType(blockPosition).getBlock(); if (block instanceof BlockEnderChest) { @@ -122,19 +120,19 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public boolean activateContainer(Player p, boolean silentchest, org.bukkit.block.Block b) { + public boolean activateContainer(@NotNull Player bukkitPlayer, boolean silent, @NotNull org.bukkit.block.Block bukkitBlock) { - EntityPlayer player = PlayerDataManager.getHandle(p); + EntityPlayer player = PlayerDataManager.getHandle(bukkitPlayer); // Silent ender chest is pretty much API-only - if (silentchest && b.getType() == Material.ENDER_CHEST) { - p.openInventory(p.getEnderChest()); + if (silent && bukkitBlock.getType() == Material.ENDER_CHEST) { + bukkitPlayer.openInventory(bukkitPlayer.getEnderChest()); player.b(StatisticList.X); return true; } World world = player.world; - BlockPosition blockPosition = new BlockPosition(b.getX(), b.getY(), b.getZ()); + BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ()); Object tile = world.getTileEntity(blockPosition); if (tile == null) { @@ -190,7 +188,7 @@ public class AnySilentContainer implements IAnySilentContainer { } // AnyChest only - SilentChest not active, container unsupported, or unnecessary. - if (!silentchest || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { + if (!silent || player.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { player.openContainer(tileInventory); return true; } @@ -208,7 +206,7 @@ public class AnySilentContainer implements IAnySilentContainer { } @Override - public void deactivateContainer(final Player bukkitPlayer) { + public void deactivateContainer(@NotNull final Player bukkitPlayer) { if (this.playerInteractManagerGamemode == null) { return; } diff --git a/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/InventoryAccess.java b/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/InventoryAccess.java index 14d0a01..386258f 100644 --- a/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/InventoryAccess.java +++ b/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/InventoryAccess.java @@ -20,17 +20,15 @@ import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.InternalAccessor; - -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_9_R2.IInventory; - import org.bukkit.craftbukkit.v1_9_R2.inventory.CraftInventory; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; public class InventoryAccess implements IInventoryAccess { @Override - public boolean isSpecialPlayerInventory(Inventory inventory) { + public boolean isSpecialPlayerInventory(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialPlayerInventory; } @@ -38,7 +36,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialPlayerInventory getSpecialPlayerInventory(Inventory inventory) { + public ISpecialPlayerInventory getSpecialPlayerInventory(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); @@ -53,7 +51,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public boolean isSpecialEnderChest(Inventory inventory) { + public boolean isSpecialEnderChest(@NotNull Inventory inventory) { if (inventory instanceof CraftInventory) { return ((CraftInventory) inventory).getInventory() instanceof ISpecialEnderChest; } @@ -61,7 +59,7 @@ public class InventoryAccess implements IInventoryAccess { } @Override - public ISpecialEnderChest getSpecialEnderChest(Inventory inventory) { + public ISpecialEnderChest getSpecialEnderChest(@NotNull Inventory inventory) { IInventory inv; if (inventory instanceof CraftInventory) { inv = ((CraftInventory) inventory).getInventory(); diff --git a/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/PlayerDataManager.java b/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/PlayerDataManager.java index 74199f3..8eecdb6 100644 --- a/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/PlayerDataManager.java +++ b/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/PlayerDataManager.java @@ -16,31 +16,27 @@ package com.lishid.openinv.internal.v1_9_R2; +import com.lishid.openinv.internal.IPlayerDataManager; +import com.mojang.authlib.GameProfile; import java.util.Collection; import java.util.UUID; - -import com.lishid.openinv.internal.IPlayerDataManager; - -import com.mojang.authlib.GameProfile; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import net.minecraft.server.v1_9_R2.EntityPlayer; import net.minecraft.server.v1_9_R2.MinecraftServer; import net.minecraft.server.v1_9_R2.PlayerInteractManager; - +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; import org.bukkit.craftbukkit.v1_9_R2.CraftServer; import org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; public class PlayerDataManager implements IPlayerDataManager { @Override - public Player loadPlayer(OfflinePlayer offline) { + public Player loadPlayer(@NotNull OfflinePlayer offline) { // Ensure player has data - if (offline == null || !offline.hasPlayedBefore()) { + if (!offline.hasPlayedBefore()) { return null; } @@ -51,7 +47,7 @@ public class PlayerDataManager implements IPlayerDataManager { new PlayerInteractManager(server.getWorldServer(0))); // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); + Player target = entity.getBukkitEntity(); if (target != null) { // Load data target.loadData(); @@ -60,13 +56,14 @@ public class PlayerDataManager implements IPlayerDataManager { return target; } - @Override - public String getPlayerDataID(OfflinePlayer offline) { + @NotNull + @Override + public String getPlayerDataID(@NotNull OfflinePlayer offline) { return offline.getUniqueId().toString(); } @Override - public OfflinePlayer getPlayerByID(String identifier) { + public OfflinePlayer getPlayerByID(@NotNull String identifier) { try { UUID uuid = UUID.fromString(identifier); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); @@ -81,7 +78,8 @@ public class PlayerDataManager implements IPlayerDataManager { } } - @Override + @NotNull + @Override public Collection getOnlinePlayers() { return Bukkit.getOnlinePlayers(); } diff --git a/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/SpecialEnderChest.java b/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/SpecialEnderChest.java index 83bcec6..cf21a3e 100644 --- a/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/SpecialEnderChest.java +++ b/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/SpecialEnderChest.java @@ -16,19 +16,19 @@ package com.lishid.openinv.internal.v1_9_R2; -import java.lang.reflect.Field; - import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - +import java.lang.reflect.Field; import net.minecraft.server.v1_9_R2.EntityPlayer; import net.minecraft.server.v1_9_R2.IInventory; import net.minecraft.server.v1_9_R2.InventoryEnderChest; import net.minecraft.server.v1_9_R2.InventorySubcontainer; - import org.bukkit.craftbukkit.v1_9_R2.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { @@ -47,13 +47,31 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento this.items = enderChest.getContents(); } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.ENDER_CHEST; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { try { EntityPlayer nmsPlayer = PlayerDataManager.getHandle(player); @@ -62,7 +80,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento Field field = playerEnderChest.getClass().getField("items"); field.setAccessible(true); field.set(playerEnderChest, this.items); - } catch (Exception e) {} + } catch (Exception ignored) {} playerOnline = true; } } diff --git a/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/SpecialPlayerInventory.java b/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/SpecialPlayerInventory.java index ad146d4..22a000c 100644 --- a/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/SpecialPlayerInventory.java +++ b/internal/v1_9_R2/src/main/java/com/lishid/openinv/internal/v1_9_R2/SpecialPlayerInventory.java @@ -16,18 +16,18 @@ package com.lishid.openinv.internal.v1_9_R2; +import com.lishid.openinv.internal.ISpecialPlayerInventory; import java.lang.reflect.Field; import java.lang.reflect.Modifier; - -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - import net.minecraft.server.v1_9_R2.ItemStack; import net.minecraft.server.v1_9_R2.PlayerInventory; - import org.bukkit.craftbukkit.v1_9_R2.inventory.CraftInventory; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { @@ -78,13 +78,31 @@ public class SpecialPlayerInventory extends PlayerInventory implements ISpecialP } } + @NotNull @Override - public Inventory getBukkitInventory() { - return inventory; + public InventoryView getBukkitView(final Player viewer) { + return new InventoryView() { + @Override + public Inventory getTopInventory() { + return inventory; + } + @Override + public Inventory getBottomInventory() { + return viewer.getInventory(); + } + @Override + public HumanEntity getPlayer() { + return viewer; + } + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + }; } @Override - public void setPlayerOnline(Player player) { + public void setPlayerOnline(@NotNull Player player) { if (!playerOnline) { this.player = PlayerDataManager.getHandle(player); setItemArrays(this.player.inventory, items, armor, extraSlots); diff --git a/plugin/plugin-core/pom.xml b/plugin/plugin-core/pom.xml index 1ab74b4..ac104d3 100644 --- a/plugin/plugin-core/pom.xml +++ b/plugin/plugin-core/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvplugin - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvplugincore @@ -38,12 +38,12 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT com.lishid openinvpluginv1_10_r1 - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/OpenInv.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/OpenInv.java index e37127e..415294c 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/OpenInv.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/OpenInv.java @@ -16,20 +16,8 @@ package com.lishid.openinv; -import java.lang.reflect.Method; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; - -import javax.annotation.Nullable; - +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; import com.lishid.openinv.commands.AnyChestPluginCommand; import com.lishid.openinv.commands.OpenEnderPluginCommand; import com.lishid.openinv.commands.OpenInvPluginCommand; @@ -50,10 +38,18 @@ import com.lishid.openinv.util.ConfigUpdater; import com.lishid.openinv.util.Function; import com.lishid.openinv.util.InternalAccessor; import com.lishid.openinv.util.Permissions; - -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; - +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; +import javax.annotation.Nullable; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.PluginCommand; @@ -64,6 +60,7 @@ import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitRunnable; +import org.jetbrains.annotations.NotNull; /** * Open other player's inventory @@ -94,18 +91,18 @@ public class OpenInv extends JavaPlugin implements IOpenInv { // Check if inventory is stored, and if it is, remove it and eject all viewers if (OpenInv.this.inventories.containsKey(key)) { - Inventory inv = OpenInv.this.inventories.remove(key).getBukkitInventory(); + Inventory inv = OpenInv.this.inventories.remove(key).getBukkitView(null).getTopInventory(); List viewers = inv.getViewers(); - for (HumanEntity entity : viewers.toArray(new HumanEntity[viewers.size()])) { + for (HumanEntity entity : viewers.toArray(new HumanEntity[0])) { entity.closeInventory(); } } // Check if ender chest is stored, and if it is, remove it and eject all viewers if (OpenInv.this.enderChests.containsKey(key)) { - Inventory inv = OpenInv.this.enderChests.remove(key).getBukkitInventory(); + Inventory inv = OpenInv.this.enderChests.remove(key).getBukkitView(null).getTopInventory(); List viewers = inv.getViewers(); - for (HumanEntity entity : viewers.toArray(new HumanEntity[viewers.size()])) { + for (HumanEntity entity : viewers.toArray(new HumanEntity[0])) { entity.closeInventory(); } } @@ -134,7 +131,7 @@ public class OpenInv extends JavaPlugin implements IOpenInv { } if (this.inventories.containsKey(key)) { - Iterator iterator = this.inventories.get(key).getBukkitInventory().getViewers().iterator(); + Iterator iterator = this.inventories.get(key).getBukkitView(null).getTopInventory().getViewers().iterator(); while (iterator.hasNext()) { HumanEntity human = iterator.next(); // If player has permission or is in the same world, allow continued access @@ -148,7 +145,7 @@ public class OpenInv extends JavaPlugin implements IOpenInv { } if (this.enderChests.containsKey(key)) { - Iterator iterator = this.enderChests.get(key).getBukkitInventory().getViewers().iterator(); + Iterator iterator = this.enderChests.get(key).getBukkitView(null).getTopInventory().getViewers().iterator(); while (iterator.hasNext()) { HumanEntity human = iterator.next(); if (Permissions.CROSSWORLD.hasPermission(human) || human.getWorld() == null @@ -165,33 +162,13 @@ public class OpenInv extends JavaPlugin implements IOpenInv { return this.getConfig().getBoolean("settings.disable-saving", false); } + @NotNull @Override public IAnySilentContainer getAnySilentContainer() { return this.accessor.getAnySilentContainer(); } - @Deprecated - @Override - public ISpecialEnderChest getEnderChest(final Player player, final boolean online) { - try { - return this.getSpecialEnderChest(player, online); - } catch (InstantiationException e) { - e.printStackTrace(); - return null; - } - } - - @Deprecated - @Override - public ISpecialPlayerInventory getInventory(final Player player, final boolean online) { - try { - return this.getSpecialInventory(player, online); - } catch (InstantiationException e) { - e.printStackTrace(); - return null; - } - } - + @NotNull @Override public IInventoryAccess getInventoryAccess() { return this.accessor.getInventoryAccess(); @@ -272,7 +249,7 @@ public class OpenInv extends JavaPlugin implements IOpenInv { } @Override - public boolean getPlayerAnyChestStatus(final OfflinePlayer player) { + public boolean getPlayerAnyChestStatus(@NotNull final OfflinePlayer player) { boolean defaultState = false; if (player.isOnline()) { @@ -285,27 +262,29 @@ public class OpenInv extends JavaPlugin implements IOpenInv { return this.getConfig().getBoolean("toggles.any-chest." + this.accessor.getPlayerDataManager().getPlayerDataID(player), defaultState); } + @NotNull @Override - public String getPlayerID(final OfflinePlayer offline) { + public String getPlayerID(@NotNull final OfflinePlayer offline) { return this.accessor.getPlayerDataManager().getPlayerDataID(offline); } @Override - public boolean getPlayerSilentChestStatus(final OfflinePlayer player) { + public boolean getPlayerSilentChestStatus(@NotNull final OfflinePlayer offline) { boolean defaultState = false; - if (player.isOnline()) { - Player onlinePlayer = player.getPlayer(); + if (offline.isOnline()) { + Player onlinePlayer = offline.getPlayer(); if (onlinePlayer != null) { defaultState = Permissions.SILENT_DEFAULT.hasPermission(onlinePlayer); } } - return this.getConfig().getBoolean("toggles.silent-chest." + this.accessor.getPlayerDataManager().getPlayerDataID(player), defaultState); + return this.getConfig().getBoolean("toggles.silent-chest." + this.accessor.getPlayerDataManager().getPlayerDataID(offline), defaultState); } + @NotNull @Override - public ISpecialEnderChest getSpecialEnderChest(final Player player, final boolean online) + public ISpecialEnderChest getSpecialEnderChest(@NotNull final Player player, final boolean online) throws InstantiationException { String id = this.accessor.getPlayerDataManager().getPlayerDataID(player); if (this.enderChests.containsKey(id)) { @@ -317,8 +296,9 @@ public class OpenInv extends JavaPlugin implements IOpenInv { return inv; } + @NotNull @Override - public ISpecialPlayerInventory getSpecialInventory(final Player player, final boolean online) + public ISpecialPlayerInventory getSpecialInventory(@NotNull final Player player, final boolean online) throws InstantiationException { String id = this.accessor.getPlayerDataManager().getPlayerDataID(player); if (this.inventories.containsKey(id)) { @@ -337,11 +317,7 @@ public class OpenInv extends JavaPlugin implements IOpenInv { @Nullable @Override - public Player loadPlayer(final OfflinePlayer offline) { - - if (offline == null) { - return null; - } + public Player loadPlayer(@NotNull final OfflinePlayer offline) { String key = this.accessor.getPlayerDataManager().getPlayerDataID(offline); if (this.playerCache.containsKey(key)) { @@ -407,7 +383,7 @@ public class OpenInv extends JavaPlugin implements IOpenInv { @Nullable @Override - public OfflinePlayer matchPlayer(final String name) { + public OfflinePlayer matchPlayer(@NotNull final String name) { // Warn if called on the main thread - if we resort to searching offline players, this may take several seconds. if (this.getServer().isPrimaryThread()) { @@ -557,7 +533,7 @@ public class OpenInv extends JavaPlugin implements IOpenInv { } @Override - public void releasePlayer(final Player player, final Plugin plugin) { + public void releasePlayer(@NotNull final Player player, @NotNull final Plugin plugin) { String key = this.accessor.getPlayerDataManager().getPlayerDataID(player); if (!this.pluginUsage.containsEntry(key, plugin.getClass())) { @@ -568,7 +544,7 @@ public class OpenInv extends JavaPlugin implements IOpenInv { } @Override - public void retainPlayer(final Player player, final Plugin plugin) { + public void retainPlayer(@NotNull final Player player, @NotNull final Plugin plugin) { String key = this.accessor.getPlayerDataManager().getPlayerDataID(player); if (this.pluginUsage.containsEntry(key, plugin.getClass())) { @@ -579,8 +555,8 @@ public class OpenInv extends JavaPlugin implements IOpenInv { } @Override - public void setPlayerAnyChestStatus(final OfflinePlayer player, final boolean status) { - this.getConfig().set("toggles.any-chest." + this.accessor.getPlayerDataManager().getPlayerDataID(player), status); + public void setPlayerAnyChestStatus(@NotNull final OfflinePlayer offline, final boolean status) { + this.getConfig().set("toggles.any-chest." + this.accessor.getPlayerDataManager().getPlayerDataID(offline), status); this.saveConfig(); } @@ -644,8 +620,8 @@ public class OpenInv extends JavaPlugin implements IOpenInv { } @Override - public void setPlayerSilentChestStatus(final OfflinePlayer player, final boolean status) { - this.getConfig().set("toggles.silent-chest." + this.accessor.getPlayerDataManager().getPlayerDataID(player), status); + public void setPlayerSilentChestStatus(@NotNull final OfflinePlayer offline, final boolean status) { + this.getConfig().set("toggles.silent-chest." + this.accessor.getPlayerDataManager().getPlayerDataID(offline), status); this.saveConfig(); } @@ -685,8 +661,8 @@ public class OpenInv extends JavaPlugin implements IOpenInv { } @Override - public void unload(final OfflinePlayer player) { - this.playerCache.invalidate(this.accessor.getPlayerDataManager().getPlayerDataID(player)); + public void unload(@NotNull final OfflinePlayer offline) { + this.playerCache.invalidate(this.accessor.getPlayerDataManager().getPlayerDataID(offline)); } } diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/AnyChestPluginCommand.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/AnyChestPluginCommand.java index ae132e8..a0253a9 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/AnyChestPluginCommand.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/AnyChestPluginCommand.java @@ -17,7 +17,6 @@ package com.lishid.openinv.commands; import com.lishid.openinv.OpenInv; - import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/OpenEnderPluginCommand.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/OpenEnderPluginCommand.java index cfc8672..9bd1f41 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/OpenEnderPluginCommand.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/OpenEnderPluginCommand.java @@ -16,12 +16,10 @@ package com.lishid.openinv.commands; -import java.util.HashMap; - import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialEnderChest; import com.lishid.openinv.util.Permissions; - +import java.util.HashMap; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; @@ -144,7 +142,7 @@ public class OpenEnderPluginCommand implements CommandExecutor { } // Open the inventory - player.openInventory(chest.getBukkitInventory()); + player.openInventory(chest.getBukkitView(player)); } } diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/OpenInvPluginCommand.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/OpenInvPluginCommand.java index 69d7e46..7a38846 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/OpenInvPluginCommand.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/OpenInvPluginCommand.java @@ -16,12 +16,10 @@ package com.lishid.openinv.commands; -import java.util.HashMap; - import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.util.Permissions; - +import java.util.HashMap; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; @@ -153,7 +151,7 @@ public class OpenInvPluginCommand implements CommandExecutor { } // Open the inventory - player.openInventory(inv.getBukkitInventory()); + player.openInventory(inv.getBukkitView(player)); } } diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SearchEnchantPluginCommand.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SearchEnchantPluginCommand.java index 522107b..ce2f687 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SearchEnchantPluginCommand.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SearchEnchantPluginCommand.java @@ -17,7 +17,6 @@ package com.lishid.openinv.commands; import com.lishid.openinv.OpenInv; - import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SearchInvPluginCommand.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SearchInvPluginCommand.java index 267d1ad..98c9912 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SearchInvPluginCommand.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SearchInvPluginCommand.java @@ -17,7 +17,6 @@ package com.lishid.openinv.commands; import com.lishid.openinv.OpenInv; - import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.Command; diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SilentChestPluginCommand.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SilentChestPluginCommand.java index 1019234..cade3f1 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SilentChestPluginCommand.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/commands/SilentChestPluginCommand.java @@ -16,14 +16,13 @@ package com.lishid.openinv.commands; +import com.lishid.openinv.OpenInv; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import com.lishid.openinv.OpenInv; - public class SilentChestPluginCommand implements CommandExecutor { private final OpenInv plugin; diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/InventoryClickListener.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/InventoryClickListener.java index 63a4718..e806214 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/InventoryClickListener.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/InventoryClickListener.java @@ -18,7 +18,6 @@ package com.lishid.openinv.listeners; import com.lishid.openinv.IOpenInv; import com.lishid.openinv.util.Permissions; - import org.bukkit.entity.HumanEntity; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/InventoryCloseListener.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/InventoryCloseListener.java index 988a3d8..a6bf404 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/InventoryCloseListener.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/InventoryCloseListener.java @@ -17,7 +17,6 @@ package com.lishid.openinv.listeners; import com.lishid.openinv.IOpenInv; - import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/PlayerListener.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/PlayerListener.java index b34914f..acc3e3d 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/PlayerListener.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/PlayerListener.java @@ -18,7 +18,6 @@ package com.lishid.openinv.listeners; import com.lishid.openinv.OpenInv; import com.lishid.openinv.util.Permissions; - import org.bukkit.entity.Player; import org.bukkit.event.Event.Result; import org.bukkit.event.EventHandler; diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/PluginListener.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/PluginListener.java index 158a434..01a53fd 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/PluginListener.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/listeners/PluginListener.java @@ -17,7 +17,6 @@ package com.lishid.openinv.listeners; import com.lishid.openinv.OpenInv; - import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.server.PluginDisableEvent; diff --git a/plugin/plugin-core/src/main/java/com/lishid/openinv/util/ConfigUpdater.java b/plugin/plugin-core/src/main/java/com/lishid/openinv/util/ConfigUpdater.java index f917699..3658d67 100644 --- a/plugin/plugin-core/src/main/java/com/lishid/openinv/util/ConfigUpdater.java +++ b/plugin/plugin-core/src/main/java/com/lishid/openinv/util/ConfigUpdater.java @@ -16,14 +16,12 @@ package com.lishid.openinv.util; +import com.lishid.openinv.OpenInv; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Set; - -import com.lishid.openinv.OpenInv; - import org.bukkit.Material; import org.bukkit.OfflinePlayer; import org.bukkit.configuration.ConfigurationSection; @@ -107,12 +105,12 @@ public class ConfigUpdater { } }.runTask(plugin); - updateToggles("AnyChest", ".toggle", "toggles.any-chest"); - updateToggles("ItemOpenInv", ".toggle", "toggles.items.open-inv"); - updateToggles("SilentChest", ".toggle", "toggles.silent-chest"); + updateToggles("AnyChest", "toggles.any-chest"); + updateToggles("ItemOpenInv", "toggles.items.open-inv"); + updateToggles("SilentChest", "toggles.silent-chest"); } - private void updateToggles(final String sectionName, String suffix, final String newSectionName) { + private void updateToggles(final String sectionName, final String newSectionName) { // Ensure section exists if (!plugin.getConfig().isConfigurationSection(sectionName)) { return; @@ -130,8 +128,9 @@ public class ConfigUpdater { for (String playerName : keys) { OfflinePlayer player = plugin.matchPlayer(playerName); - String dataID = plugin.getPlayerID(player); - toggles.put(dataID, section.getBoolean(playerName + suffix, false)); + if (player != null) { + toggles.put(plugin.getPlayerID(player), section.getBoolean(playerName + ".toggle", false)); + } } new BukkitRunnable() { diff --git a/plugin/plugin-v1_10_R1/pom.xml b/plugin/plugin-v1_10_R1/pom.xml index 005df7e..d43228f 100644 --- a/plugin/plugin-v1_10_R1/pom.xml +++ b/plugin/plugin-v1_10_R1/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvplugin - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvpluginv1_10_r1 @@ -37,7 +37,7 @@ com.lishid openinvcommon - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/plugin/plugin-v1_10_R1/src/main/java/com/lishid/openinv/listeners/InventoryDragListener.java b/plugin/plugin-v1_10_R1/src/main/java/com/lishid/openinv/listeners/InventoryDragListener.java index 520b762..603073f 100644 --- a/plugin/plugin-v1_10_R1/src/main/java/com/lishid/openinv/listeners/InventoryDragListener.java +++ b/plugin/plugin-v1_10_R1/src/main/java/com/lishid/openinv/listeners/InventoryDragListener.java @@ -18,7 +18,6 @@ package com.lishid.openinv.listeners; import com.lishid.openinv.IOpenInv; import com.lishid.openinv.util.Permissions; - import org.bukkit.entity.HumanEntity; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/plugin/pom.xml b/plugin/pom.xml index ccb3c7b..f48283e 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -21,7 +21,7 @@ com.lishid openinvparent - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT openinvplugin diff --git a/pom.xml b/pom.xml index 707a3c3..3236a43 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ openinvparent OpenInvParent http://dev.bukkit.org/bukkit-plugins/openinv/ - 3.3.8-SNAPSHOT + 4.0.0-SNAPSHOT pom @@ -84,6 +84,14 @@ + + + org.jetbrains + annotations + 17.0.0 + + +