ChestShop-authors / ChestShop-3

ChestShop - the chest & sign shop plugin for Minecraft Servers running Bukkit/Spigot/Paper
https://dev.bukkit.org/projects/chestshop
GNU Lesser General Public License v2.1
269 stars 175 forks source link

Could not pass event PlayerTeleportEvent #599

Closed andrewkm closed 2 weeks ago

andrewkm commented 2 weeks ago

What is happening?

Errors when teleporting around. Not happening when compiled against https://github.com/ChestShop-authors/ChestShop-3/commit/af02eb3f14e4a1cfdc60137595db1c2643259dba.

[13:04:53] [Server thread/ERROR]: Could not pass event PlayerTeleportEvent to ChestShop v3.12.3-SNAPSHOT (build 416)
java.lang.IncompatibleClassChangeError: Found class org.bukkit.inventory.InventoryView, but interface was expected
    at ChestShop.jar/com.Acrobot.ChestShop.Listeners.Player.PlayerTeleport.onPlayerTeleport(PlayerTeleport.java:23) ~[ChestShop.jar:?]
    at com.destroystokyo.paper.event.executor.StaticMethodHandleEventExecutor.execute(StaticMethodHandleEventExecutor.java:39) ~[paper-api-1.20.6-R0.1-SNAPSHOT.jar:?]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:77) ~[paper-api-1.20.6-R0.1-SNAPSHOT.jar:1.20.6-147-e41d44f]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.20.6-R0.1-SNAPSHOT.jar:?]
    at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.20.6-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.craftbukkit.entity.CraftPlayer.teleport(CraftPlayer.java:1451) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at org.bukkit.craftbukkit.entity.CraftPlayer.teleport(CraftPlayer.java:1349) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at org.bukkit.craftbukkit.entity.CraftEntity.teleport(CraftEntity.java:226) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at multiverse-core-local.jar/com.onarandombox.MultiverseCore.utils.SimpleSafeTTeleporter.safelyTeleport(SimpleSafeTTeleporter.java:215) ~[multiverse-core-local.jar:?]
    at multiverse-core-local.jar/com.onarandombox.MultiverseCore.utils.SimpleSafeTTeleporter.teleport(SimpleSafeTTeleporter.java:338) ~[multiverse-core-local.jar:?]
    at multiverse-core-local.jar/com.onarandombox.MultiverseCore.commands.TeleportCommand.runCommand(TeleportCommand.java:152) ~[multiverse-core-local.jar:?]
    at multiverse-core-local.jar/com.onarandombox.commandhandler.CommandHandler.checkAndRunCommand(CommandHandler.java:296) ~[multiverse-core-local.jar:?]
    at multiverse-core-local.jar/com.onarandombox.commandhandler.CommandHandler.processFoundCommands(CommandHandler.java:143) ~[multiverse-core-local.jar:?]
    at multiverse-core-local.jar/com.onarandombox.commandhandler.CommandHandler.locateAndRunCommand(CommandHandler.java:93) ~[multiverse-core-local.jar:?]
    at multiverse-core-local.jar/com.onarandombox.MultiverseCore.MultiverseCore.onCommand(MultiverseCore.java:839) ~[multiverse-core-local.jar:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.20.6-R0.1-SNAPSHOT.jar:?]
    at io.papermc.paper.command.brigadier.bukkit.BukkitCommandNode$BukkitBrigCommand.run(BukkitCommandNode.java:91) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.2.9.jar:?]
    at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:31) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.commands.execution.CommandQueueEntry.execute(CommandQueueEntry.java:5) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:103) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:448) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.commands.Commands.performCommand(Commands.java:355) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.commands.Commands.performCommand(Commands.java:342) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.commands.Commands.performCommand(Commands.java:337) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.performUnsignedChatCommand(ServerGamePacketListenerImpl.java:2202) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$14(ServerGamePacketListenerImpl.java:2176) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1511) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:195) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1488) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1411) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:135) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1377) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1238) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:323) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
    at java.base/java.lang.Thread.run(Thread.java:1570) ~[?:?]

What did you expect to happen?

N/A

Plugin Version

Compiled against https://github.com/ChestShop-authors/ChestShop-3/commit/32aa1403c92fbdc11086449d5d190bbd63084e77

Plugin Config

Config ```yaml # Should the plugin log some messages that are useful for debugging? DEBUG: false # Do you want to turn off the automatic updates of ChestShop? TURN_OFF_UPDATES: true # Do you want to turn off the automatic notifications for new development builds? TURN_OFF_DEV_UPDATE_NOTIFIER: true # Do you want to include some values of this config in the metrics? (This will not leak sensitive data but help in the development process) INCLUDE_SETTINGS_IN_METRICS: false # How large should the internal caches be? CACHE_SIZE: 1000 # The default language when the client's language can't be found. DEFAULT_LANGUAGE: "en" # Should the plugin try to use a language file that matches the client's locale setting? USE_CLIENT_LOCALE: true # What containers are allowed to hold a shop? (Only blocks with inventories work!) SHOP_CONTAINERS: - "CHEST" - "TRAPPED_CHEST" - "BARREL" # (In 1/1000th of a second) How often can a player use the shop sign? SHOP_INTERACTION_INTERVAL: 250 # Do you want to block people in creative mode from using shops? IGNORE_CREATIVE_MODE: true # Do you want to block people who have access to a shop due to their permissions from using it? (owners are always ignored) IGNORE_ACCESS_PERMS: false # If true, people will buy with left-click and sell with right-click. REVERSE_BUTTONS: false # If true, people will be able to buy/sell in 64 stacks while holding the crouch button. SHIFT_SELLS_IN_STACKS: false # If true, people will be able to sell/buy everything available of the same type. SHIFT_SELLS_EVERYTHING: false # What can you do by clicking shift with SHIFT_SELLS_IN_STACKS turned on? (ALL/BUY/SELL) SHIFT_ALLOWS: "ALL" # Can shop's chest be opened by owner with right-clicking a shop's sign? ALLOW_SIGN_CHEST_OPEN: false # If true and in 1.14+, the owner of a chest shop can click with a dye / ink sac to dye the sign. SIGN_DYING: false # If true, when you left-click your own shop sign you won't open chest's inventory, but instead you will start destroying the sign. ALLOW_LEFT_CLICK_DESTROYING: true # If true, if the shop is empty, the sign is destroyed and put into the chest, so the shop isn't usable anymore. REMOVE_EMPTY_SHOPS: false # If true, if the REMOVE_EMPTY_SHOPS option is turned on, the chest is also destroyed. REMOVE_EMPTY_CHESTS: false # A list of worlds in which to remove empty shops with the previous config. Case sensitive. An empty list means all worlds. REMOVE_EMPTY_WORLDS: - "world1" - "world2" # First line of your Admin Shop's sign should look like this: ADMIN_SHOP_NAME: "EcoCityCraft" # Make all admin shops be unlimited even if they have a shop container at the sign FORCE_UNLIMITED_ADMIN_SHOP: false # The name of the economy account which Admin Shops should use and to which all taxes will go SERVER_ECONOMY_ACCOUNT: "valese" # The uuid of the economy account for the Admin Shop. Useful for fake accounts as normally only accounts of players work SERVER_ECONOMY_ACCOUNT_UUID: 231881e6-de0f-4224-bfce-0b78e07d862b # Percent of the price that should go to the server's account. (100 = 100 percent) TAX_AMOUNT: 0 # Percent of the price that should go to the server's account when buying from an Admin Shop. SERVER_TAX_AMOUNT: 0 # Amount of money player must pay to create a shop SHOP_CREATION_PRICE: 0 # How much money do you get back when destroying a sign? SHOP_REFUND_PRICE: 0 # How many decimal places are allowed at a maximum for prices? PRICE_PRECISION: 2 # This makes sure that the UUIDs of player shop accounts match the server's online-mode setting. Disabling this might lead to issues with offline players and is therefore unsupported! ENSURE_CORRECT_PLAYERID: true # This regexp validates the name of the player. If the name doesn't match, the player will neither be able to create a valid shop sign, nor buy/sell from a shop. # Note for Bedrock support: If you have Floodgate on your server, you should set this regexp to ^\\*?\\w+$ and ENSURE_CORRECT_PLAYERID to false # If your Floodgate prefix is not *, change the first * in the regexp (the one before the question mark) to whatever your prefix is. VALID_PLAYERNAME_REGEXP: "^\\w+$" # Should we block shops that sell things for more than they buy? (This prevents newbies from creating shops that would be exploited) BLOCK_SHOPS_WITH_SELL_PRICE_HIGHER_THAN_BUY_PRICE: true # Maximum amount of items that can be bought/sold at a shop. Default 3456 is a double chest of 64 stacks. MAX_SHOP_AMOUNT: 3456 # Do you want to allow other players to build a shop on a block where there's one already? ALLOW_MULTIPLE_SHOPS_AT_ONE_BLOCK: false # Can shops be used even when the buyer/seller doesn't have enough items, space or money? (The price will be scaled adequately to the item amount) ALLOW_PARTIAL_TRANSACTIONS: true # Can '?' be put in place of item name in order for the sign to be auto-filled? ALLOW_AUTO_ITEM_FILL: true # Enable this if you use BungeeCord and want players to receive shop notifications on other servers BUNGEECORD_MESSAGES: false # Do you want to show "Out of stock" messages? SHOW_MESSAGE_OUT_OF_STOCK: true # Do you want to show "Full shop" messages? SHOW_MESSAGE_FULL_SHOP: true # How many seconds do you want to wait before showing notifications for the same shop to the owner again? NOTIFICATION_MESSAGE_COOLDOWN: 10 # Can players hide the "Out of stock" messages with /cstoggle? CSTOGGLE_TOGGLES_OUT_OF_STOCK: false # Can players hide the "Full shop" messages with /cstoggle? CSTOGGLE_TOGGLES_FULL_SHOP: false # Do you want to show "You bought/sold... " messages? SHOW_TRANSACTION_INFORMATION_CLIENT: true # Do you want to show "Somebody bought/sold... " messages? SHOW_TRANSACTION_INFORMATION_OWNER: true # If true, plugin will log transactions in its own file LOG_TO_FILE: true # Do you want ChestShop's messages to show up in console? LOG_TO_CONSOLE: true # Should all shop removals be logged to the console? LOG_ALL_SHOP_REMOVALS: true # Do you want to stack all items up to 64 item stacks? STACK_TO_64: false # Do you want to use built-in protection against chest destruction? USE_BUILT_IN_PROTECTION: true # Do you want to have shop signs "stick" to chests? STICK_SIGNS_TO_CHESTS: false # EXPERIMENTAL: Do you want to turn off the default protection when another plugin is protecting the block? (Will leave the chest visually open - CraftBukkit bug!) TURN_OFF_DEFAULT_PROTECTION_WHEN_PROTECTED_EXTERNALLY: true # Do you want to turn off the default sign protection? Warning! Other players will be able to destroy other people's shops! TURN_OFF_SIGN_PROTECTION: false # Do you want to disable the hopper protection, which prevents Hopper-Minecarts from taking items out of shops? TURN_OFF_HOPPER_PROTECTION: false # Only allow users to buy/sell that have access to the sign's protection? (E.g. LWC protection) CHECK_ACCESS_FOR_SHOP_USE: false # Do you want to protect shop chests with LWC? PROTECT_CHEST_WITH_LWC: true # Of which type should the container protection be? Possible type: public, private, donate and on some LWC versions display LWC_CHEST_PROTECTION_TYPE: "PRIVATE" # Do you want to protect shop signs with LWC? PROTECT_SIGN_WITH_LWC: true # Of which type should the sign protection be? Possible type: public, private, donate and on some LWC versions display LWC_SIGN_PROTECTION_TYPE: "PRIVATE" # Should the chest's LWC protection be removed once the shop sign is destroyed? REMOVE_LWC_PROTECTION_AUTOMATICALLY: true # Should LWC limits block shop creations? LWC_LIMITS_BLOCK_CREATION: true # Do you want to only let people build inside WorldGuard regions? WORLDGUARD_INTEGRATION: false # Do you want to only let people build inside region flagged by doing /region regionName flag allow-shop allow? WORLDGUARD_USE_FLAG: false # Do you want ChestShop to respect WorldGuard's chest protection? WORLDGUARD_USE_PROTECTION: false # Do you want to only let people build inside GriefPrevention claims? GRIEFPREVENTION_INTEGRATION: false # Do you want to only let people build inside RedProtect regions? REDPROTECT_INTEGRATION: false # Do you want to deny shop access to unlogged users? AUTHME_HOOK: true # Do you want to allow shop access to unregistered users? (Example: registration is optional) AUTHME_ALLOW_UNREGISTERED: false # How much Heroes exp should people get for creating a ChestShop? HEROES_EXP: 0.0 # Add icons and make item names hoverable in transaction messages when ShowItem is installed? SHOWITEM_MESSAGE: true # Add stock counter to quantity line? USE_STOCK_COUNTER: true # Should the plugin strip the colors from formatted price? STRIP_PRICE_COLORS: false # Do you want to turn off the automatic notifications for releases? TURN_OFF_UPDATE_NOTIFIER: false ```

Server Version

Paper version 1.20.6-147-ver/1.20.6@e41d44f

Server Log

N/A - On request via Discord for specific information.

What other plugins are you running?

N/A - On request via Discord for specific information.

Agreements

Additional context

No response

Phoenix616 commented 2 weeks ago

Mergh, this is due to building against 1.21 and them changing the InventoryView to an interface... this is going to be annoying moving forward. :S

andrewkm commented 2 weeks ago

Mergh, this is due to building against 1.21 and them changing the InventoryView to an interface... this is going to be annoying moving forward. :S

Indeed. md_5 made a fix so that we don't have to compile against 1.21 to work on 1.21. https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/commits/d01c70e93ea1018048a433717c46120eaaeda5ab#src%2Fmain%2Fjava%2Forg%2Fbukkit%2Fcraftbukkit%2Futil%2FCommodore.java However if you do compile against 1.21 you break 1.20.6 lmao.