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

Support double for TAX_AMOUNT #578

Closed diskawrs closed 2 months ago

diskawrs commented 7 months ago

What is happening?

[11:23:19 INFO]: [ChestShop] Enabling ChestShop v3.12.3-SNAPSHOT (build 402) [11:23:20 ERROR]: [ChestShop] Error while loading field TAX_AMOUNT in configuration config.yml java.lang.IllegalArgumentException: Can not set static int field com.Acrobot.ChestShop.Configuration.Properties.TAX_AMOUNT to java.lang.Double at jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) ~[?:?] at jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) ~[?:?] at jdk.internal.reflect.UnsafeStaticIntegerFieldAccessorImpl.set(UnsafeStaticIntegerFieldAccessorImpl.java:96) ~[?:?] at java.lang.reflect.Field.set(Field.java:799) ~[?:?] at com.Acrobot.Breeze.Configuration.Configuration.pairFileAndClass(Configuration.java:87) ~[ChestShop.jar:?] at com.Acrobot.ChestShop.ChestShop.loadConfig(ChestShop.java:186) ~[ChestShop.jar:?] at com.Acrobot.ChestShop.ChestShop.onEnable(ChestShop.java:158) ~[ChestShop.jar:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:281) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?] at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:190) ~[paper-1.20.2.jar:git-Paper-309] at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104) ~[paper-1.20.2.jar:git-Paper-309] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.v1_20_R2.CraftServer.enablePlugin(CraftServer.java:646) ~[paper-1.20.2.jar:git-Paper-309] at org.bukkit.craftbukkit.v1_20_R2.CraftServer.enablePlugins(CraftServer.java:557) ~[paper-1.20.2.jar:git-Paper-309] at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:627) ~[paper-1.20.2.jar:git-Paper-309] at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:424) ~[paper-1.20.2.jar:git-Paper-309] at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:308) ~[paper-1.20.2.jar:git-Paper-309] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1086) ~[paper-1.20.2.jar:git-Paper-309] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[paper-1.20.2.jar:git-Paper-309] at java.lang.Thread.run(Thread.java:840) ~[?:?] [11:23:20 INFO]: [ChestShop] Found locales hu, es_mx, sv, en, ro, zh_tw, fi, tr, af, ca, da, it, ru, nl, cs, vi, pt_br, he, zh, es, ko, no, fr, el, ja, uk, de, pl, ar, sr [11:23:20 INFO]: [ChestShop] Using TheNewEconomy as the Economy provider now. [11:23:20 INFO]: [ChestShop] Vault loaded! [11:23:20 INFO]: [ChestShop] Using Paper's BlockDestroyEvent instead of the BlockPhysicsEvent! [11:23:20 INFO]: [ChestShop] Auto-updater is disabled. If you want the plugin to automatically download new releases then set 'TURN_OFF_UPDATES' to 'false' in your config.yml!

What did you expect to happen?

Removed all white spaces, thinking that might be the issue but it was not.

Plugin Version

402 (Nov 20, 2023, 1:30:04 PM)

Plugin Config

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: false

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: true

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:

(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: true

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: true

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:

First line of your Admin Shop's sign should look like this:

ADMIN_SHOP_NAME: "Admin Shop"

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: ""

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: 00000000-0000-0000-0000-000000000000

Percent of the price that should go to the server's account. (100 = 100 percent)

TAX_AMOUNT: 2.5

Percent of the price that should go to the server's account when buying from an Admin Shop.

SERVER_TAX_AMOUNT: 50

Amount of money player must pay to create a shop

SHOP_CREATION_PRICE: 10000

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: false

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: false

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: false

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: 100.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: false

Should the plugin strip the colors from formatted price?

STRIP_PRICE_COLORS: false

Server Version

Papermc 1.20.2 #309

Server Log

Log ``` [Your log here] ```

What other plugins are you running?

plugins [11:25:19 INFO]: Server Plugins (41): [11:25:19 INFO]: Paper Plugins: [11:25:19 INFO]: - TheNewEconomy [11:25:19 INFO]: Bukkit Plugins: [11:25:19 INFO]: - BlueSlimeCore, ChestShop, ChestShop-towny, ChestShopTools, Citizens, CoreProtect, DeadChest, Denizen, dynmap, Dynmap-Towny [11:25:19 INFO]: GPS-Quests, HoloMobHealth, LuckPerms, ModelEngine, Multiverse-Core, Multiverse-NetherPortals, Multiverse-Portals, MythicMobs, NPC_Destinations, NPCDestinations_Animator [11:25:19 INFO]: PlaceholderAPI, ProtocolLib, Quests, QuestsBar, QuestsGUI, Sentinel, spark, TabTPS, Towny, TownyChat [11:25:19 INFO]: TownyFlight, TownyProvinces, TownyResources, Vault, VillagerMarket, VoidGen, WorldBorder, WorldEdit, WorldGuard, WorldGuard-Towny

Agreements

Additional context

No response

Phoenix616 commented 7 months ago

The tax can only be a full integer, not a double.

diskawrs commented 7 months ago

oh that used to work before, strange. Thanks for the heads up.

Phoenix616 commented 7 months ago

I would be really surprised if it did. If anything it would've just removed the fraction of the double.

But I don't think there is any technical reason for enforcing that to be an integer. I'll look into adjusting it to be a double when I find the time.

diskawrs commented 7 months ago

Thank you. Previously on 1.9.2 it was accepting fractions or maybe I just never got the warning message.