Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added /sell multipliers with configuration #4770

Open
wants to merge 2 commits into
base: 2.x
Choose a base branch
from

Conversation

justinmtech
Copy link
Contributor

Information

This PR closes #3934

Details

Proposed feature:

Sell multipliers! The idea is for servers to be able to control how much players can /sell their items for based on configurable permissions. I re-wrote this based on @Chew's feedback to work more similarly to the multiple set-home system so that it doesn't have to iterate over all of a players' permissions and instead, check if they have the ones in the config.
#3934

Environments tested:

OS: Windows 10

Java version: OpenJDK 17.0.1

Demonstration:

Screenshot: https://i.imgur.com/ju0jMUy.png
Here I give myself a diamond and sell it with no permissions (as op), then I give myself the "essentials.sell.multiplier.double" permission and as you can see, my sell price is double.
Plugin Download: https://www.dropbox.com/s/56y3zf6ibarlwj4/EssentialsX-2.19.3-dev%2B6-739600e-sell-multipliers-redo.jar?dl=0

@pop4959 pop4959 added type: enhancement Features and feature requests. module: main Issues or PRs for the main Essentials module labels May 21, 2022
Copy link
Member

@JRoy JRoy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also needs to account for sell sign

@@ -405,6 +405,7 @@ public interface ISettings extends IConf {
boolean isUpdateCheckEnabled();

boolean showZeroBaltop();
BigDecimal getMultiplier(final User user);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
BigDecimal getMultiplier(final User user);
BigDecimal getMultiplier(final User user);

@@ -91,7 +91,7 @@ public void run(final Server server, final User user, final String commandLabel,

private BigDecimal sellItem(final User user, final ItemStack is, final String[] args, final boolean isBulkSell) throws Exception {
final int amount = ess.getWorth().getAmount(ess, user, is, args, isBulkSell);
final BigDecimal worth = ess.getWorth().getPrice(ess, is);
final BigDecimal worth = ess.getWorth().getPrice(ess, is) == null ? null : ess.getWorth().getPrice(ess, is).multiply(ess.getSettings().getMultiplier(user));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
final BigDecimal worth = ess.getWorth().getPrice(ess, is) == null ? null : ess.getWorth().getPrice(ess, is).multiply(ess.getSettings().getMultiplier(user));
final BigDecimal originalWorth = ess.getWorth().getPrice(ess, is);
final BigDecimal worth = originalWorth == null ? null : originalWorth.multiply(ess.getSettings().getMultiplier(user));

Comment on lines +857 to +862
# Settings for /sell multipliers
# Give multipliers to players with the permission 'essentials.sell.multiplier.{multiplier}'
# example: 'essentials.sell.multiplier.double', 'essentials.sell.multiplier.triple'
# You can add as many multipliers as you want.
# Use the "default" name to set the default multiplier that everyone has. It defaults to 1 if not set.
# If a player has more than one multiplier permission, it will pick the highest one.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Settings for /sell multipliers
# Give multipliers to players with the permission 'essentials.sell.multiplier.{multiplier}'
# example: 'essentials.sell.multiplier.double', 'essentials.sell.multiplier.triple'
# You can add as many multipliers as you want.
# Use the "default" name to set the default multiplier that everyone has. It defaults to 1 if not set.
# If a player has more than one multiplier permission, it will pick the highest one.
# Allow players to receive multipliers for items sold with /sell or the sell sign.
# You can set the default multiplier using the 'default' rank below.
# To grant different multipliers to different people, you need to define a 'multiplier-rank' below.
# Create the 'multiplier-rank' below, and give the matching permission: essentials.sell.multiplier.<multiplier-rank>

@zzkanezz2
Copy link

zzkanezz2 commented Apr 8, 2024

Can we please get sell multipliers implemented to latest essentialsx?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module: main Issues or PRs for the main Essentials module type: enhancement Features and feature requests.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

/sell multipliers with permissions
4 participants