Spigot [BSB] Better Shulker Boxes [1.12-1.16] 2.14.5

More features for shulker boxes

  1. Rektb submitted a new resource:

    [BSB] Better Shulker Boxes - A plugin that makes easier the task of opening shulker boxes

    Read more about this resource...
     
  2. I have my own plugin for this, but I suggest to save data into the box itself maybe on every inventory click otherwise a dupe can happen when player dies and the box was still open @Rektb
     
    • Useful Useful x 1
  3. Rektb updated [BSB] Better Shulker Boxes with a new update entry:

    [BSB] Changelog 1.4 - Major fixes, code refactoring and new updater

    Read the rest of this update entry...
     
  4. I've got this error:

    Code (Text):
    [11:59:24 ERROR]: Could not pass event PlayerInteractEvent to BetterShulkerBoxes v1.5
    java.lang.ClassCastException: org.bukkit.craftbukkit.v1_13_R2.inventory.CraftMetaItem cannot be cast to org.bukkit.inventory.meta.BlockStateMeta
    at me.rektb.bettershulkerboxes.events.InteractEvent.onInteract(InteractEvent.java:67) ~[?:?]
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor124.execute(Unknown Source) ~[?:?]
    at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:66) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:520) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at org.bukkit.craftbukkit.v1_13_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:320) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at org.bukkit.craftbukkit.v1_13_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:287) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at org.bukkit.craftbukkit.v1_13_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:283) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at net.minecraft.server.v1_13_R2.PlayerConnection.a(PlayerConnection.java:1386) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at net.minecraft.server.v1_13_R2.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:26) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at net.minecraft.server.v1_13_R2.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:5) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at net.minecraft.server.v1_13_R2.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:15) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_212]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_212]
    at net.minecraft.server.v1_13_R2.SystemUtils.a(SystemUtils.java:108) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1018) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:940) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:837) ~[patched_1.13.2.jar:git-Paper-"d5f24c6a"]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_212]
     
  5. Thanks for reporting the error, it'd be great if you could join my discord server and provide more details.
     
  6. I beat ya to it ;)
    (just without the chat and sound things that I dont tend to like but eh)
     
  7. Rektb

    Code (Text):
    Server thread/ERROR Could not pass event InventoryClickEvent to BetterShulkerBoxes v1.8
    17.06 14:20:31 [Server] INFO org.bukkit.event.EventException: null
    17.06 14:20:31 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:520) ~[spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:505) ~[spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:2162) ~[spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.PacketPlayInWindowClick.a(SourceFile:33) ~[spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.PacketPlayInWindowClick.a(SourceFile:10) ~[spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:13) ~[spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) [spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(SourceFile:135) [spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(SourceFile:114) [spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.aW(MinecraftServer.java:895) [spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:888) [spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.awaitTasks(SourceFile:123) [spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:872) [spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:805) [spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]
    17.06 14:20:31 [Server] INFO Caused by: java.lang.NullPointerException
    17.06 14:20:31 [Server] INFO at me.rektb.bettershulkerboxes.events.DupePreventEvents.invalidPrevent(DupePreventEvents.java:82) ~[?:?]
    17.06 14:20:31 [Server] INFO at sun.reflect.GeneratedMethodAccessor199.invoke(Unknown Source) ~[?:?]
    17.06 14:20:31 [Server] INFO at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    17.06 14:20:31 [Server] INFO at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
    17.06 14:20:31 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316) ~[spigot.jar:git-Spigot-093165d-ba575a5]
    17.06 14:20:31 [Server] INFO ... 17 more

    Opening the box placed in the hand is uncomfortable. Make the opening of the box when you hover the mouse in the inventory and right-click.
     
    • Creative Creative x 1
  8. This plugin doesn't prevent shulker boxes from being placed in other shulker boxes. Instead, the player just loses the shulker box that was clicked.

    Also, this error happens on 1.14.3 when I try to place a shulker box on another shulker box

    Code (Text):

    [01:21:34 ERROR]: Could not pass event InventoryClickEvent to BetterShulkerBoxes v1.8
    java.lang.NullPointerException: null
            at me.rektb.bettershulkerboxes.events.DupePreventEvents.invalidPrevent(DupePreventEvents.java:82) ~[?:?]
            at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor96.execute(Unknown Source) ~[?:?]
            at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.14.3.jar:git-Paper-123]
            at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[patched_1.14.3.jar:git-Paper-123]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.14.3.jar:git-Paper-123]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:536) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:2341) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.PacketPlayInWindowClick.a(SourceFile:33) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.PacketPlayInWindowClick.a(SourceFile:10) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:18) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:127) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:105) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.MinecraftServer.aW(MinecraftServer.java:1002) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:995) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:115) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:979) ~[patched_1.14.3.jar:git-Paper-123]
            at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:912) ~[patched_1.14.3.jar:git-Paper-123]
            at java.lang.Thread.run(Thread.java:748) [?:1.8.0_212]

     
     
    • Like Like x 1
  9. Thanks for the suggestion, I will see if I can implement it.
     
  10. Thanks for reporting the bug, I've fixed it. Please download version 1.9
     
  11. I will, but I _must_ take into account that this suggestion...
    ...was already implemented in another plugin which does the same thing as this one, but it doesn't have a config file. And my players are enjoying that one for now, since it didn't have the shulkerbox inside shulkerbox bug. Sure I'll return to this one when you'll implement that behaviour as well, and in any inventory (this means also chests).

    EDIT: Adding to that suggestion, I propose adding some switches to the config file, something like "right-click-inv-open" and "right-click-hand-open", or better yet permissions, but really anything will do.

    I have another suggestion for you though. Upload your source code on GitHub. That's important so we all can contribute to the project.

    And last but not least, if that wasn't taken into account, please make so the actual shulker box name is displayed as the inventory name (you know, the anvil renaming stuff)
     
    • Agree Agree x 1
  12. Thanks a lot for the suggestions, I have never received this amount of feedback. I'm planning to implement this feature for version 2.0. And although I already uploaded the source code to Github it is outdated and buggy, so I'm going to create a new repo.
    I really appreciate your comment, it's really helpful.

    EDIT: Git repo: https://github.com/lMartin3/BetterShulkerBoxes
     
    #20 Rektb, Jul 17, 2019
    Last edited: Jul 17, 2019