QuickShop is a shop plugin that allows players to easily sell/buy any items from a chest without any commands.

Overview

QuickShop-Hikari

Codacy Badge CodeFactor GitHub license TestsPassed Contributors FOSSA Status

Java MC

Introduction

QuickShop is a shop plugin that allows players to easily sell/buy any items from a chest without any commands. In fact, none of the commands that QuickShop provides are ever needed by a player.

Ghost-chu/QuickShop-Hikari(this) forked from PotatoCraft-Studio/QuickShop-Reremake which it forked from Ghost-chu/QuickShop-Reremake and original repo is KaiKikuchi/QuickShop. QuickShop-Hikari maintained by Ghost_chu.

The main purpose of this branch is to modernize the core content of QuickShop and adapt the features of the latest version of Minecraft.

Community & Support

Discuss
Bug Tracker
Discord

Features

  • Easy to use
  • Toggleable Display Item on top of the chest
  • NBT Data, Enchantment, Tool Damage, Potion, and Mob Egg support
  • Unlimited chest support
  • Blacklist support & bypass permissions
  • Shops that buy and sell items at the same time (Using double chests)
  • Customisable permission checks
  • UUID support
  • Better shop protection
  • Item display name i18n
  • Enchantment display name i18n
  • A cool item preview
  • World/region protection plugins support
  • ProtocolLib based Virtual DisplayItem support
  • Powerful API
  • Optimized performance
  • MineDown syntax support
  • H2 (local) or MySQL (remote) datasource supports
  • Supports custom inventory! Use InventoryWrapper API.
  • Optimized for Paper, also can run under Spigot (but little hacky and slowly)

Downloads

ci.codemc.io

Compatibility Modules

You can download compatibility modules optional. Install them if you need.

clearlag

Prevent Clearlag remove our display items if QuickShop running under Real DisplayItem mode.

nocheatplus

A compatibility helper to prevent player trigger NCP's anti-cheat checks while creating the shops.

openinv

Allow player use command /qs echest to turn a shop use player's EnderChest inventory as inventory.

worldedit

Removal shops that destoryed in a WorldEdit operation to prevent shops turn to a "ghost" shop.

worldguard

Flag based shop control.

Contribute

If you're a developer, you can contribute to the QuickShop code! Just make a fork and install the Lombok plugin, then make a pull request when you're done! Please try to follow Google Java Style. Also do not increase the plugin version number. Thank you very much!

And you can make yourself fork then publish it, no request required.

To compile the QuickShop and debug it by yourself, please follow these steps:

  1. Make sure you're using Java16 JDK in your PATH.
  2. Compile main-project without signature by using profile: mvn install -Pgithub with github profile selected.
  3. Start your server and go on.

Maven

<repository>
    <id>quickshop-repoid>
    <url>https://repo.codemc.io/repository/maven-public/url>
repository>


<dependency>
    <groupId>com.ghostchugroupId>
    <artifactId>quickshop-bukkitartifactId>
    <version>{VERSION}version>
    <scope>providedscope>
dependency>

Bstats

BigImage

License

FOSSA Status

Developer API

Plugin plugin = Bukkit.getPluginManager().getPlugin("QuickShop-Hikari");
if(plugin != null){
    QuickShopAPI api = (QuickShopAPI)plugin;
    api.xxxx;
}
Comments
  • [BUG] Doesn't work properly on Spigot with ClassCastException on while getting MaterialMinecraftNamespacedKey

    [BUG] Doesn't work properly on Spigot with ClassCastException on while getting MaterialMinecraftNamespacedKey

    Description

    正常创建商店 当我购买东西时,无法显示到商品的价格,后台出现报错,输入数字也无法购买

    Steps to reproduce

    1.创建一个商店 2.左键

    Expected Behaviour

    Fix it

    Screenshots

    image image

    `[18:27:56] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to QuickShop-Hikari v1.1.3.6
    org.bukkit.event.EventException: null
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?]
            at org.bukkit.craftbukkit.v1_18_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:505) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at org.bukkit.craftbukkit.v1_18_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:472) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.server.level.PlayerInteractManager.a(PlayerInteractManager.java:196) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:1486) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.network.protocol.game.PacketPlayInBlockDig.a(SourceFile:34) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.network.protocol.game.PacketPlayInBlockDig.a(SourceFile:8) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.network.protocol.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:31) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.server.TickTask.run(SourceFile:18) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.util.thread.IAsyncTaskHandler.d(SourceFile:157) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.d(SourceFile:23) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1190) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:1) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.util.thread.IAsyncTaskHandler.y(SourceFile:131) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.server.MinecraftServer.be(MinecraftServer.java:1169) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.server.MinecraftServer.y(MinecraftServer.java:1162) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.util.thread.IAsyncTaskHandler.bo(SourceFile:116) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1145) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1051) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:304) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3480-Spigot-42b6152-cf391b5]
            at java.lang.Thread.run(Thread.java:833) [?:?]
    Caused by: java.lang.IllegalArgumentException: java.lang.ClassCastException@64ae745
            at jdk.internal.reflect.GeneratedMethodAccessor1067.invoke(Unknown Source) ~[?:?]
            at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
            at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
            at com.ghostchu.quickshop.platform.spigot.ReflectFactory.getMaterialMinecraftNamespacedKey(ReflectFactory.java:251) ~[?:?]
            at com.ghostchu.quickshop.platform.spigot.SpigotPlatform.getItemStackHoverEvent(SpigotPlatform.java:92) ~[?:?]
            at com.ghostchu.quickshop.shop.SimpleShopManager.sendShopInfo(SimpleShopManager.java:1284) ~[?:?]
            at com.ghostchu.quickshop.listener.PlayerListener.buyFromShop(PlayerListener.java:337) ~[?:?]
            at com.ghostchu.quickshop.listener.PlayerListener.onClick(PlayerListener.java:139) ~[?:?]
            at jdk.internal.reflect.GeneratedMethodAccessor183.invoke(Unknown Source) ~[?:?]
            at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
            at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?]
            ... 23 more`
    

    /qs paste URL

    https://下面为qs.log

    Additional Context

    [2022-05-03 08:52:38.644] {"creator":"61329a2d-2076-371d-bbfb-1654c50f9e3c","shop":{"world":"world","position":{"x":-194,"y":72,"z":407,"world":"world"},"moderator":"{\"owner\":\"61329a2d-2076-371d-bbfb-1654c50f9e3c\",\"staffs\":[]}","price":50.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: PINK_SHULKER_BOX\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-194,\\\"y\\\":72,\\\"z\\\":407}\"}"},"location":{"x":-194,"y":72,"z":407,"world":"world"}}
    [2022-05-03 08:53:36.996] {"creator":"61329a2d-2076-371d-bbfb-1654c50f9e3c","shop":{"world":"world","position":{"x":-197,"y":72,"z":407,"world":"world"},"moderator":"{\"owner\":\"61329a2d-2076-371d-bbfb-1654c50f9e3c\",\"staffs\":[]}","price":48.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: TOTEM_OF_UNDYING\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-197,\\\"y\\\":72,\\\"z\\\":407}\"}"},"location":{"x":-197,"y":72,"z":407,"world":"world"}}
    [2022-05-03 09:03:42.069] {"shop":{"world":"world","position":{"x":-194,"y":72,"z":407,"world":"world"},"moderator":"{\"owner\":\"61329a2d-2076-371d-bbfb-1654c50f9e3c\",\"staffs\":[]}","price":50.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: PINK_SHULKER_BOX\n","unlimited":1,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-194,\\\"y\\\":72,\\\"z\\\":407}\"}"},"oldPrice":50.0,"newPrice":50.0}
    [2022-05-03 18:43:31.736] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-196,"y":72,"z":44,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":5.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: SADDLE\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-196,\\\"y\\\":72,\\\"z\\\":44}\"}"},"location":{"x":-196,"y":72,"z":44,"world":"world"}}
    [2022-05-03 18:43:41.328] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-196,"y":72,"z":43,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":49.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: BOW\n  meta:\n    ==: ItemMeta\n    meta-type: UNSPECIFIC\n    enchants:\n      ARROW_DAMAGE: 3\n      DURABILITY: 3\n    Damage: 358\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-196,\\\"y\\\":72,\\\"z\\\":43}\"}"},"location":{"x":-196,"y":72,"z":43,"world":"world"}}
    [2022-05-03 18:43:53.827] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-196,"y":72,"z":42,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":5.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: BOOK\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-196,\\\"y\\\":72,\\\"z\\\":42}\"}"},"location":{"x":-196,"y":72,"z":42,"world":"world"}}
    [2022-05-03 18:44:05.127] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-196,"y":72,"z":41,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":10.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: HEART_OF_THE_SEA\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-196,\\\"y\\\":72,\\\"z\\\":41}\"}"},"location":{"x":-196,"y":72,"z":41,"world":"world"}}
    [2022-05-03 18:44:15.127] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-196,"y":72,"z":40,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":5.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: MUSIC_DISC_FAR\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-196,\\\"y\\\":72,\\\"z\\\":40}\"}"},"location":{"x":-196,"y":72,"z":40,"world":"world"}}
    [2022-05-03 18:44:25.077] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-196,"y":72,"z":39,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":39.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: DIAMOND_BOOTS\n  meta:\n    ==: ItemMeta\n    meta-type: UNSPECIFIC\n    enchants:\n      DEPTH_STRIDER: 3\n      PROTECTION_FIRE: 3\n    Damage: 421\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-196,\\\"y\\\":72,\\\"z\\\":39}\"}"},"location":{"x":-196,"y":72,"z":39,"world":"world"}}
    [2022-05-03 18:44:34.128] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-196,"y":72,"z":38,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":59.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: BOW\n  meta:\n    ==: ItemMeta\n    meta-type: UNSPECIFIC\n    enchants:\n      ARROW_INFINITE: 1\n      ARROW_DAMAGE: 4\n    Damage: 332\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-196,\\\"y\\\":72,\\\"z\\\":38}\"}"},"location":{"x":-196,"y":72,"z":38,"world":"world"}}
    [2022-05-03 18:44:42.396] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-196,"y":72,"z":37,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":30.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: BOW\n  meta:\n    ==: ItemMeta\n    meta-type: UNSPECIFIC\n    enchants:\n      ARROW_DAMAGE: 4\n    Damage: 310\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-196,\\\"y\\\":72,\\\"z\\\":37}\"}"},"location":{"x":-196,"y":72,"z":37,"world":"world"}}
    [2022-05-03 18:44:49.727] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-196,"y":72,"z":36,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":129.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: FISHING_ROD\n  meta:\n    ==: ItemMeta\n    meta-type: UNSPECIFIC\n    enchants:\n      LUCK: 2\n      LURE: 3\n      MENDING: 1\n      DURABILITY: 3\n    repair-cost: 1\n    Damage: 40\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-196,\\\"y\\\":72,\\\"z\\\":36}\"}"},"location":{"x":-196,"y":72,"z":36,"world":"world"}}
    [2022-05-03 18:45:20.577] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-190,"y":72,"z":36,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":35.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: FISHING_ROD\n  meta:\n    ==: ItemMeta\n    meta-type: UNSPECIFIC\n    enchants:\n      LUCK: 2\n      DURABILITY: 3\n    Damage: 57\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-190,\\\"y\\\":72,\\\"z\\\":36}\"}"},"location":{"x":-190,"y":72,"z":36,"world":"world"}}
    [2022-05-03 18:45:27.827] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-190,"y":72,"z":37,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":89.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: BOW\n  meta:\n    ==: ItemMeta\n    meta-type: UNSPECIFIC\n    enchants:\n      MENDING: 1\n      ARROW_DAMAGE: 5\n    repair-cost: 1\n    Damage: 213\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-190,\\\"y\\\":72,\\\"z\\\":37}\"}"},"location":{"x":-190,"y":72,"z":37,"world":"world"}}
    [2022-05-03 18:45:34.741] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-190,"y":72,"z":38,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":19.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: POTION\n  meta:\n    ==: ItemMeta\n    meta-type: POTION\n    potion-type: minecraft:long_night_vision\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-190,\\\"y\\\":72,\\\"z\\\":38}\"}"},"location":{"x":-190,"y":72,"z":38,"world":"world"}}
    [2022-05-03 18:45:41.427] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-190,"y":72,"z":39,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":20.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: POTION\n  meta:\n    ==: ItemMeta\n    meta-type: POTION\n    potion-type: minecraft:long_water_breathing\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-190,\\\"y\\\":72,\\\"z\\\":39}\"}"},"location":{"x":-190,"y":72,"z":39,"world":"world"}}
    [2022-05-03 18:45:48.577] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-190,"y":72,"z":40,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":29.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: BOW\n  meta:\n    ==: ItemMeta\n    meta-type: UNSPECIFIC\n    enchants:\n      ARROW_FIRE: 1\n      ARROW_KNOCKBACK: 1\n      DURABILITY: 3\n    Damage: 315\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-190,\\\"y\\\":72,\\\"z\\\":40}\"}"},"location":{"x":-190,"y":72,"z":40,"world":"world"}}
    [2022-05-03 18:45:59.427] {"creator":"a7e6886c-1a89-363d-82cf-c506c0297920","shop":{"world":"world","position":{"x":-190,"y":72,"z":44,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":1.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: PUFFERFISH\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-190,\\\"y\\\":72,\\\"z\\\":44}\"}"},"location":{"x":-190,"y":72,"z":44,"world":"world"}}
    [2022-05-03 22:07:47.277] {"beforeTrading":true,"player":"826821f9-f000-3613-aeb6-809ddb2625bf","holding":465.5}
    [2022-05-03 22:07:47.287] {"beforeTrading":true,"player":"a7e6886c-1a89-363d-82cf-c506c0297920","holding":493.01}
    [2022-05-03 22:07:47.409] {"shop":{"world":"world","position":{"x":-196,"y":72,"z":44,"world":"world"},"moderator":"{\"owner\":\"a7e6886c-1a89-363d-82cf-c506c0297920\",\"staffs\":[]}","price":5.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: SADDLE\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-196,\\\"y\\\":72,\\\"z\\\":44}\"}"},"type":"SELLING","trader":"826821f9-f000-3613-aeb6-809ddb2625bf","itemName":"item.minecraft.saddle","itemStack":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: SADDLE\n","amount":1,"balance":4.75,"tax":0.05}
    [2022-05-03 22:07:47.409] {"beforeTrading":false,"player":"826821f9-f000-3613-aeb6-809ddb2625bf","holding":460.5}
    [2022-05-03 22:07:47.412] {"beforeTrading":false,"player":"a7e6886c-1a89-363d-82cf-c506c0297920","holding":497.76}
    [2022-05-04 17:08:14.628] {"creator":"826821f9-f000-3613-aeb6-809ddb2625bf","shop":{"world":"world","position":{"x":-354,"y":64,"z":1582,"world":"world"},"moderator":"{\"owner\":\"826821f9-f000-3613-aeb6-809ddb2625bf\",\"staffs\":[]}","price":5.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: STRING\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-354,\\\"y\\\":64,\\\"z\\\":1582}\"}"},"location":{"x":-354,"y":64,"z":1582,"world":"world"}}
    [2022-05-04 17:10:24.295] {"player":"826821f9-f000-3613-aeb6-809ddb2625bf","reason":"BlockBreak(player)","shop":{"world":"world","position":{"x":-354,"y":64,"z":1582,"world":"world"},"moderator":"{\"owner\":\"826821f9-f000-3613-aeb6-809ddb2625bf\",\"staffs\":[]}","price":5.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: STRING\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-354,\\\"y\\\":64,\\\"z\\\":1582}\"}"}}
    [2022-05-04 17:10:24.297] {"player":"00000000-0000-0000-0000-000000000000","reason":"Shop removed","shop":{"world":"world","position":{"x":-354,"y":64,"z":1582,"world":"world"},"moderator":"{\"owner\":\"826821f9-f000-3613-aeb6-809ddb2625bf\",\"staffs\":[]}","price":5.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: STRING\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-354,\\\"y\\\":64,\\\"z\\\":1582}\"}"}}
    [2022-05-04 17:10:35.060] {"creator":"826821f9-f000-3613-aeb6-809ddb2625bf","shop":{"world":"world","position":{"x":-354,"y":64,"z":1582,"world":"world"},"moderator":"{\"owner\":\"826821f9-f000-3613-aeb6-809ddb2625bf\",\"staffs\":[]}","price":1.0,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: STRING\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-354,\\\"y\\\":64,\\\"z\\\":1582}\"}"},"location":{"x":-354,"y":64,"z":1582,"world":"world"}}
    [2022-05-04 17:59:02.059] {"creator":"61329a2d-2076-371d-bbfb-1654c50f9e3c","shop":{"world":"world","position":{"x":-368,"y":73,"z":1578,"world":"world"},"moderator":"{\"owner\":\"61329a2d-2076-371d-bbfb-1654c50f9e3c\",\"staffs\":[]}","price":2.3333333333333334E20,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: SLIME_BALL\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-368,\\\"y\\\":73,\\\"z\\\":1578}\"}"},"location":{"x":-368,"y":73,"z":1578,"world":"world"}}
    [2022-05-04 18:00:50.634] {"shop":{"world":"world","position":{"x":-368,"y":73,"z":1578,"world":"world"},"moderator":"{\"owner\":\"61329a2d-2076-371d-bbfb-1654c50f9e3c\",\"staffs\":[]}","price":2.3333333333333334E20,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: SLIME_BALL\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-368,\\\"y\\\":73,\\\"z\\\":1578}\"}"},"oldPrice":2.3333333333333334E20,"newPrice":2.3333333333333334E20}
    [2022-05-04 18:01:09.867] {"player":"61329a2d-2076-371d-bbfb-1654c50f9e3c","reason":"BlockBreak(player)","shop":{"world":"world","position":{"x":-368,"y":73,"z":1578,"world":"world"},"moderator":"{\"owner\":\"61329a2d-2076-371d-bbfb-1654c50f9e3c\",\"staffs\":[]}","price":23.33,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: SLIME_BALL\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-368,\\\"y\\\":73,\\\"z\\\":1578}\"}"}}
    [2022-05-04 18:01:09.867] {"player":"00000000-0000-0000-0000-000000000000","reason":"Shop removed","shop":{"world":"world","position":{"x":-368,"y":73,"z":1578,"world":"world"},"moderator":"{\"owner\":\"61329a2d-2076-371d-bbfb-1654c50f9e3c\",\"staffs\":[]}","price":23.33,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: SLIME_BALL\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-368,\\\"y\\\":73,\\\"z\\\":1578}\"}"}}
    [2022-05-04 18:01:44.902] {"creator":"61329a2d-2076-371d-bbfb-1654c50f9e3c","shop":{"world":"world","position":{"x":-368,"y":73,"z":1578,"world":"world"},"moderator":"{\"owner\":\"61329a2d-2076-371d-bbfb-1654c50f9e3c\",\"staffs\":[]}","price":23.33,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: CHEST\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-368,\\\"y\\\":73,\\\"z\\\":1578}\"}"},"location":{"x":-368,"y":73,"z":1578,"world":"world"}}
    [2022-05-04 18:01:48.634] {"player":"61329a2d-2076-371d-bbfb-1654c50f9e3c","reason":"BlockBreak(player)","shop":{"world":"world","position":{"x":-368,"y":73,"z":1578,"world":"world"},"moderator":"{\"owner\":\"61329a2d-2076-371d-bbfb-1654c50f9e3c\",\"staffs\":[]}","price":23.33,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: CHEST\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-368,\\\"y\\\":73,\\\"z\\\":1578}\"}"}}
    [2022-05-04 18:01:48.634] {"player":"00000000-0000-0000-0000-000000000000","reason":"Shop removed","shop":{"world":"world","position":{"x":-368,"y":73,"z":1578,"world":"world"},"moderator":"{\"owner\":\"61329a2d-2076-371d-bbfb-1654c50f9e3c\",\"staffs\":[]}","price":23.33,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: CHEST\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-368,\\\"y\\\":73,\\\"z\\\":1578}\"}"}}
    [2022-05-04 18:01:53.128] {"creator":"61329a2d-2076-371d-bbfb-1654c50f9e3c","shop":{"world":"world","position":{"x":-368,"y":73,"z":1578,"world":"world"},"moderator":"{\"owner\":\"61329a2d-2076-371d-bbfb-1654c50f9e3c\",\"staffs\":[]}","price":23.33,"item":"item:\n  ==: org.bukkit.inventory.ItemStack\n  v: 2975\n  type: SLIME_BALL\n","unlimited":0,"shopType":0,"extra":"QuickShop-Hikari: {}\n","currency":null,"disableDisplay":false,"taxAccount":"61329a2d-2076-371d-bbfb-1654c50f9e3c","inventoryWrapperName":"QuickShop-Hikari","symbolLink":"{\"holder\":\"BLOCK\",\"content\":\"{\\\"world\\\":\\\"world\\\",\\\"x\\\":-368,\\\"y\\\":73,\\\"z\\\":1578}\"}"},"location":{"x":-368,"y":73,"z":1578,"world":"world"}}
    
    bug 
    opened by SnowSwordScholar 12
  • [BUG] Plugin causes

    [BUG] Plugin causes "Invalid move player packet received" kicks upon teleports with Papers anti-xray enabled

    Description

    Upon teleporting some distance, players are occasionally kicked with an invalid move player packet error. This error was narrowed down to being caused by QuickShop (Both reremake and Hikari cause this) after sequentially removing plugins from the server one by one until the kick no longer happened, and then adding QuickShop back to verify that the kick once again occurred after reinstalling it. Appears to only happen when one of the teleportation locations involved has shops nearby.

    Minimum number of plugins installed that I tried while still getting the kick: EssentialsX EssentialsX AntiBuild EssentialsX Chat EssentialsX Protect EssentialsX Spawn ProtocolLib QuickShop Hikari 3.3.0.1

    Console output during kick (/b is our server's alias for the Essentials /back command):

    13:58:47
    maeeeeee issued server command: /b
    maeeeeee issued server command: /b
    13:58:48
    maeeeeee issued server command: /b
    maeeeeee issued server command: /b
    maeeeeee lost connection: Invalid move player packet received
    -maeeeeee has left for now.
    

    Spamming /back from EssentialsX between two areas far apart where at least one of the areas has a QuickShop shop loaded. I'm using a mod Command Macros to send /back every 100ms. Of course spamming it so much isn't representative, but this is a way to replicate the issue. This can be replicated on a vanilla client too by just typing the command a lot, but I used the macro for convenience. This just often happens out of nowhere to players when teleporting.

    It seems to happen to some players more than others so connection speed could be a part of it, but I'm seeing it happen to about every player. Checking through logs we've had this happen 985 times since October 15th. This information is from QuickShop Reremake, but this was reproduced on QuickShop Hikari too, so I doubt it'd be any different.

    Steps to reproduce

    1. Teleport to a location. Several different plugins were used for teleporting, such as EssentialsX, MyWarp, and others, and each caused the issue.
    2. Player is occasionally kicked from the server.

    To consistently reproduce using EssentialsX, teleport somewhere (/tpr works for this) and then spam /back until the issue occurs.

    Expected Behaviour

    Plugin should not be causing players to be kicked upon teleports.

    Screenshots

    Minecraft.2022.11.12.-.13.57.55.03.mp4

    /qs paste URL

    https://ghost-chu.github.io/quickshop-hikari-paste-viewer/?remote=https%3A%2F%2Fbytebin.lucko.me%2FV6Wy3DZ5yz

    Additional Context

    Duplicate of https://github.com/PotatoCraft-Studio/QuickShop-Reremake/issues/255

    Can replicate with paper-1.19.2-265 with the following plugins:

    • Vault
    • QuickShop Hikari 3.3.0.1
    • Protocollib
    • EssentialsX

    All configs set to default , except for: Changed config/paper-world-defaults.yml and setting anticheat.anti-xray.enabled to true.

    server bug 
    opened by diademiemi 11
  • Improve PAPI compatability

    Improve PAPI compatability

    The goal is to improve PlaceholderAPI support as I can see some potential to improve things.

    Right now, the following changes have been made:

    • Moved argument handling to PAPICache class
    • Use the Cache's get functionality to get the value or compute it if not present.
    • Added new world-total_<world> and world-loaded_<world> options which act the same as server-total and server-loaded but for a specific world.
    • Added count-loaded to player option to only list shops the player owns and that are loaded
    • Added missing persist method to prevent the expansion from unloading during /papi reload

    I keep this as a draft for now so that we can first discuss any additional changes and ideas.

    opened by Andre601 9
  • Bump versions-maven-plugin from 2.13.0 to 2.14.1

    Bump versions-maven-plugin from 2.13.0 to 2.14.1

    Bumps versions-maven-plugin from 2.13.0 to 2.14.1.

    Release notes

    Sourced from versions-maven-plugin's releases.

    2.14.1

    Changes

    🐛 Bug Fixes

    2.14.0

    Changes

    🚀 New features and improvements

    🐛 Bug Fixes

    📦 Dependency updates

    📝 Documentation updates

    ... (truncated)

    Commits
    • 4859d20 [maven-release-plugin] prepare release 2.14.1
    • c74ced2 Resolves #848: Fixing module resolution with nonstandard filenames
    • efec55e [maven-release-plugin] prepare for next development iteration
    • fde050e [maven-release-plugin] prepare release 2.14.0
    • a9e9e14 Make Max Dependency enforcer rule as main page of enforcer module
    • e01dbb7 Fix links in site
    • 84dc123 Add 404 page
    • 30b44a0 Ignore code reformat form git blame after spotless
    • 1fb9f3b Enable Spotless plugin - code reformat
    • 42341fb Enable Spotless plugin - automatic code formatting
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 6
  • [BUG] Chests outside of shop plots. (Towny Compat)

    [BUG] Chests outside of shop plots. (Towny Compat)

    Description

    The problem: Placing chests outside shop plots, including in the wild, makes them unbreakable except by hand.

    Buggy Behavior: On shop plots, chests work like usual. They can be broken with any item in hand. But when you place a chest outside of a shop plot, you must use an empty hand to break the chest on any other plot type.

    Possible culprit: This is likely being caused by compat-towny somewhere with Towny plots.

    Steps to reproduce

    With Towny running and a town created, make a shop plot and place a chest. You can break it with anything in hand. Now place a chest in any other plot type (not shop) and try to break it with anything. You can only use an empty hand.

    Expected Behaviour

    Chests should work like normal everywhere and only work as QuickShop chests in shop plots.

    Screenshots

    not available

    /qs paste URL

    https://ghost-chu.github.io/quickshop-hikari-paste-viewer/?remote=https%3A%2F%2Fbytebin.lucko.me%2FIkKhccAs6S

    Additional Context

    No response

    opened by roracle 6
  • Redesign database structure & refactor shop system

    Redesign database structure & refactor shop system

    Why

    The current database structure design and store system design are based on block coordinates.
    This means that all the stores' data stores are binded to the coordinates of the Block.

    That's mean, GUI shop and multi-shops in one block is impossible to do with the current data structure.

    Goal

    • Make the store's metadata not strongly associated with Block coordinates.
    • Modify data structure to be compatible with GUI shop, multi-shop etc.
    • Restructured plugin structure, modularization of QuickShop features.
      • This should help advance the de-Playerization and use UUIDs in the internal core to do all the work.
        • In other words, it doesn't have to be a physically present player to trade with the store, which should make it easier for other Addons to simulate transactions while a particular player is offline.
    • Cross server data sync in real-time. (Feat. MultiPaper)
    enhancement 
    opened by Ghost-chu 6
  • [BUG] Remove shop stock when insufficient inventory slots

    [BUG] Remove shop stock when insufficient inventory slots

    Description

    When somebody buys let's say 5 stacks of dirt from a shop, but only have 2 inventory slots, the following things happen;

    • The player buying items will not lose any balance for the items that were bought
    • The player selling items will not get any balance for the items sold
    • The stock of the store drops (so items do get removed from the store and items will be given to the player buying items for the amount of free slots they have)

    Steps to reproduce

    1. Set up a shop
    2. Fill your inventory so you only have a limited amount of slots available
    3. Buy an amount of items so your inventory will overflow
    4. The result will be as described as above

    Expected Behaviour

    QS cancels the buy event when not enough inventory slots are available, I didn't manage to find a setting in the config to adjust this either.

    Screenshots

    none

    /qs paste URL

    https://ghost-chu.github.io/quickshop-hikari-paste-viewer/?remote=https%3A%2F%2Fbytebin.lucko.me%2Fl6dF8F9fDI

    Additional Context

    No response

    bug 
    opened by MrPranklez 5
  • Bump rollbar-java from 1.8.1 to 1.9.0

    Bump rollbar-java from 1.8.1 to 1.9.0

    Bumps rollbar-java from 1.8.1 to 1.9.0.

    Release notes

    Sourced from rollbar-java's releases.

    v1.9.0

    What's Changed

    Full Changelog: https://github.com/rollbar/rollbar-java/compare/v1.8.1...v1.9.0

    Changelog

    Sourced from rollbar-java's changelog.

    1.9.0

    • Enable maven publishing for rollbar-reactive-streams and rollbar-reactive-streams-reactor artifacts. #297
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 4
  • [BUG] Taxes display incorrect

    [BUG] Taxes display incorrect

    Description

    tax: 0.05 tax-account: CuteLittleSky show-tax: true 显示税收后支付的税为交易的金额,而且这部分没有收税,但实际上税收账号能收到这笔钱

    Steps to reproduce

    正常交易

    Expected Behaviour

    Fix

    Screenshots

    image

    /qs paste URL

    https://paste.helpch.at/pavuhatife

    Additional Context

    No response

    bug 
    opened by CuteLittleSky 4
  • [BUG] Plugin causes

    [BUG] Plugin causes "Invalid move player packet received" kicks upon teleports with Papers anti-xray enabled

    Description

    Upon teleporting some distance, players are occasionally kicked with an invalid move player packet error. This error was narrowed down to being caused by QuickShop after sequentially removing plugins from the server one by one until the kick no longer happened, and then adding QuickShop back to verify that the kick once again occurred after reinstalling it. Appears to only happen when one of the teleportation locations involved has shops nearby.

    Minimum number of plugins installed that I tried while still getting the kick: LWCX 2.2.7 EssentialsX EssentialsX AntiBuild EssentialsX Chat EssentialsX Protect EssentialsX Spawn ProtocolLib QuickShop Hikari 3.3.0.1

    Console output during kick (/b is our server's alias for the Essentials /back command):

    13:58:47
    maeeeeee issued server command: /b
    maeeeeee issued server command: /b
    13:58:48
    maeeeeee issued server command: /b
    maeeeeee issued server command: /b
    maeeeeee lost connection: Invalid move player packet received
    -maeeeeee has left for now.
    

    Spamming /back from EssentialsX between two areas far apart where at least one of the areas has a QuickShop shop loaded. I'm using a mod Command Macros to send /back every 100ms. Of course spamming it so much isn't representative, but this is a way to replicate the issue. This just often happens out of nowhere to players when teleporting. It seems to happen to some players more than others so connection speed could be a part of it, but I'm seeing it happen to about every player. Checking through logs we've had this happen 985 times since October 15th.

    Steps to reproduce

    1. Teleport to a location. Several different plugins were used for teleporting, such as EssentialsX, MyWarp, and others, and each caused the issue.
    2. Player is occasionally kicked from the server.

    To consistently reproduce using EssentialsX, teleport somewhere (/tpr works for this) and then spam /back until the issue occurs.

    Expected Behaviour

    Plugin should not be causing players to be kicked upon teleports.

    Screenshots

    Minecraft.2022.11.12.-.13.57.55.03.mp4e23a-4707-81b7-b76f040abeee.mp4

    /qs paste URL

    https://ghost-chu.github.io/quickshop-hikari-paste-viewer/?remote=https%3A%2F%2Fbytebin.lucko.me%2FV6Wy3DZ5yz

    Additional Context

    Duplicate of https://github.com/PotatoCraft-Studio/QuickShop-Reremake/issues/255

    Can replicate with paper-1.19.2-265 with the following plugins:

    • Vault
    • QuickShop Hikari 3.3.0.1, downloaded from latest Modrinth
    • Protocollib
    • EssentialsX

    All configs set to default, except for: Changed config/paper-world-defaults.yml and setting anticheat.anti-xray.enabled to true.

    Spamming /back from EssentialsX between two areas far apart where at least one of the areas has a QuickShop shop loaded. I'm using a mod Command Macros to send /back every 100ms. Of course spamming it so much isn't representative, but this is a way to replicate the issue. This just often happens out of nowhere to players when teleporting. It seems to happen to some players more than others so connection speed could be a part of it, but I'm seeing it happen to about every player. Checking through logs we've had this happen 985 times since October 15th. This is when we updated to Paper 1.19 and Quickshop 5.1.0.9.

    invalid 
    opened by diademiemi 3
  • Improve paste command

    Improve paste command

    Improves the /qs paste command in a few ways:

    • Set a fixed width for columns, based on how many are used (i.e. two will have each 50%)
    • Add column-layout: fixed; to <table> to have columns at fixed widths.
      • This is mainly to prevent the System Properties from altering the column width when expanded (see below entry)
      • Put System properties into <details> for cleaner look and put each one on its own line.
    • Return Fail: No such file (<filename>) when a file isn't present.
    • Switched from commons-lang's deprecated StringEscapeUtils to the one of commons-text.

    I wanted to adjust some of the table stuff more directly and also wanted to add a feature to show the player head in the Paste Creator section, but due to how the CSS is not part of the main page (Is loaded from an external source) am I not able to do this, or only with some ugly style inclusion.

    Perhaps in the future will I bother to try and implement something in the paste site to get rid of that external CSS.

    A live-example of this paste update can be seen here: https://ghost-chu.github.io/quickshop-hikari-paste-viewer/?remote=https%3A%2F%2Fbytebin.lucko.me%2FHDqpgKAsZI

    opened by Andre601 3
  • Bump towny from 0.98.4.17 to 0.98.4.20

    Bump towny from 0.98.4.17 to 0.98.4.20

    Bumps towny from 0.98.4.17 to 0.98.4.20.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump LandsAPI from 6.26.17 to 6.26.18

    Bump LandsAPI from 6.26.17 to 6.26.18

    Bumps LandsAPI from 6.26.17 to 6.26.18.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump Plan from 5.5.2144 to 5.5.2150

    Bump Plan from 5.5.2144 to 5.5.2150

    Bumps Plan from 5.5.2144 to 5.5.2150.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Better Lands support

    Better Lands support

    Discord Feature Request

    AlternativeSoap:

    Is it possible to add better support for "Lands" such as playershops only can be created inside your own land

    enhancement 
    opened by Ghost-chu 0
Releases(3.6.0.3)
Owner
Ghost_chu
Yeet!
Ghost_chu
Geoponics is an E-Commerce Android Based Application Designed for Farmers As Well As Normal Users to Buy and Sell Agricultural goods!

Geoponics : E-Commerce Application Geoponics is an E-Commerce Android Based Aplication Designed for Farmers As Well As Normal Users to Buy and Sell Ag

Prasad 3 Aug 31, 2021
An Auction website. Users can Put up items for sale, bid on currently active auctions and write reviews for items that they have won in the auctions.

Auction-Project An Auction website. Users can Put up items for sale, bid on currently active auctions and write reviews for items that they have won i

Nika Salia 3 Sep 7, 2021
JDA Commands is an extension for JDA to make commands easier and clearer to develop.

JDA Commands JDA Commands is an extension for JDA to make commands easier and clearer to develop. With the API you can easily create commands for the

Dominik 12 Oct 14, 2022
code to the rat i give to people if u want to change the webhook its in "src/main/java/github/quantizr/autogg/guis/gui" please just dont sell my rat :(

SkyblockRat My rats code join my discord! https://discord.gg/bbK6ndHqN6 i got tired of people asking "is it double hooked?!" so here is my rats code y

null 6 Dec 10, 2022
A powerful API whichs allows developers to change a players name and UUID on login.

UUIDSwitcher An easy to use but powerful API for spigot servers which gives developers control over the UUID and name a player logs in with. This chan

BeefDev 6 Nov 30, 2022
jimoos shop server

积墨开源商城 服务端代码 快速开始 快速开始开发文档 https://jimoos-cn.github.io/jimoos-shop-server/#/quick-start/quick-start 业务建模图 数据库导入 执行数据迁移命令行 mvn -Dtest=MigrationDone tes

Jimoos 20 Oct 20, 2022
YAS: Yet Another Shop

YAS: Yet Another Shop YAS is a pet project aim to practice building a typical microservice application in Java Intended technologies and frameworks Ja

NashTech Garage 59 Nov 16, 2022
Winfoom is an HTTP(s) proxy server facade that allows applications to authenticate through the proxy without having to deal with the actual handshake.

winfoom Basic Proxy Facade for NTLM, Kerberos, SOCKS and Proxy Auto Config file proxies To help this project please give it a star ⭐ Overview Winfoom

Eugen Covaci 56 Dec 8, 2022
Plugin that prevents players/mobs from destroying farmland by jumping on it

?? SimpleNoCropTrample Plugin that prevents players/mobs from destroying farmland by jumping on it. Works with every version from 1.7 to 1.18 and all

null 1 Jan 25, 2022
InterfaceMaker is a modern plugin to handle and customize join items, hotbars and menus with a developer and administrator friendly API.

Interface Maker InterfaceMaker is a modern plugin to handle and customize join items, hotbars and menus with a developer friendly API. Features Simple

2LStudios - Minecraft 10 Nov 27, 2022
A plugin that adds Qualities to Items, along with the ability for the user to create their own.

ItemQualities ItemQualities is a Minecraft Plugin for 1.18+ Servers that adds a special functionality to Damagable items. Inspired by the Quality Tool

Abraxas 7 Jul 1, 2022
With react-native-update-in-app library you can easily implement in-app updates in your React Native app using CDN or any other file server

React Native In-App update With react-native-update-in-app library you can easily implement in-app updates in your React Native app using CDN or any o

Nepein Andrey 7 Dec 21, 2022
A minimalistic Face Recognition module which can be easily incorporated in any Android project.

Real Time Face Recognition with TfLite A minimalistic Face Recognition module which can be easily incorporated in any Android project. Key Features Fa

Abhinav Sharma 2 Jun 21, 2022
A plugin to help you easily edit Swagger and OpenAPI specification files inside IntelliJ IDEA

Swagger Plugin Swagger Plugin makes it easy to edit Swagger and OpenAPI specification files inside IntelliJ IDEA. You can find it on JetBrains' plugin

Zalando SE 1.1k Dec 15, 2022
A mod for OneConfig that allows you to customize the hit color of any living entity to your liking.

HitColor A mod for OneConfig that allows you to customize the hit color of any living entity to your liking. Features An option to toggle Armor being

Nox 4 Nov 5, 2022
Fixes Minecraft client lag from receiving chat messages, at the expense of not being able to block players in chat.

chat-lag-fix Fixes Minecraft client lag from receiving chat messages, at the expense of not being able to block players in chat. Mojang in their infin

adryd 21 Dec 4, 2022
A free opensource domain tracker with a breakdown of which countries players connected with for each domain versions 1.13+

A free opensource domain tracker with a breakdown of which countries players connected with for each domain versions 1.13+

Ricky Lafleur 8 Aug 4, 2022
Provides a simple java application for managing internationall football teams, players, coaches and matches.

Internationall football team manager application Provides a simple java application for managing internationall football teams, players, coaches and m

Magnus Lilja 1 Feb 7, 2022
Distribute players across multiple servers while syncing packets

ShardMC Distribute players across multiple servers while syncing packets ShardMC aims to be a simple plugin that allows multiple servers to sync playe

Jacob Bashista 5 Nov 28, 2022