Skip to content

Add PreTransactionEvent#6370

Merged
JRoy merged 5 commits intoEssentialsX:2.xfrom
Golfing7:2.x
Apr 5, 2026
Merged

Add PreTransactionEvent#6370
JRoy merged 5 commits intoEssentialsX:2.xfrom
Golfing7:2.x

Conversation

@Golfing7
Copy link
Copy Markdown
Contributor

@Golfing7 Golfing7 commented Dec 2, 2025

Information

I added a PreTransactionEvent for cancelling transactions between users.

Details

Proposed feature:
Adding a PreTransactionEvent.

Environments tested:

OS: Linux Mint

Java version: 23

  • Most recent Paper version (1.XX.Y, git-Paper-BUILD)
  • CraftBukkit/Spigot/Paper 1.12.2
  • CraftBukkit 1.8.8

Demonstration:

    @EventHandler
    public void onPay(PreTransactionEvent event) {
        // Prevent money from being sent outside their own faction.
        IUser userSource = event.getRequester().getUser();
        if (userSource == null)
            return;

        FPlayer fplayerSource = FPlayers.getInstance().getByPlayer(userSource.getBase());
        if (fplayerSource == null || fplayerSource.isAdminBypassing())
            return;

        Faction faction = fplayerSource.getFaction();
        if (faction == null || !isFactionVoluntaryExcluded(faction.getId()))
            return;

        // Who are they sending it to?
        FPlayer target = FPlayers.getInstance().getById(event.getTarget().getUUID().toString());
        Faction factionTarget = target.getFaction();
        if (faction != factionTarget) {
            event.setCancelled(true);
            msg(userSource.getBase(), cantPayOutsideExcludedFactionMessage);
        }
    }

This code prevents transactions between two users when two factions can't interact.

Copy link
Copy Markdown
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.

what if instead PreTransactionEvent extended TransactionEvent and also allowed you to update the amount?

@Golfing7
Copy link
Copy Markdown
Contributor Author

Sorry for the delay, I've made the requested change.

Comment thread Essentials/src/main/java/com/earth2me/essentials/User.java
Comment thread Essentials/src/main/java/net/essentialsx/api/v2/events/PreTransactionEvent.java Outdated
Copy link
Copy Markdown
Contributor

@benediktjohannes benediktjohannes left a comment

Choose a reason for hiding this comment

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

Suggestion

@JRoy
Copy link
Copy Markdown
Member

JRoy commented Apr 5, 2026

thanks :)

@JRoy JRoy added this pull request to the merge queue Apr 5, 2026
Merged via the queue into EssentialsX:2.x with commit 08b7fe3 Apr 5, 2026
1 check passed
Euphillya added a commit to Euphillya/Essentials-Folia that referenced this pull request Apr 26, 2026
EssentialsX@d16aec1 Fixed unreachable nickNoMore Message in /nick command. Not a huge change.  (EssentialsX#6442)
EssentialsX@bc6acfe Command Trees v2 (EssentialsX#6230)
EssentialsX@99f7a49 Improve gc command performance (EssentialsX#6439)
EssentialsX@e9b8343 Move away from adventure-platform for Paper (EssentialsX#6220)
EssentialsX@18549a7 Fix /ess reload (EssentialsX#6444)
EssentialsX@f080f81 fix(commands): propagate Essentials and module to tree nodes (EssentialsX#6445)
EssentialsX@b8acd9c Allow discord console relay to be filtered by logger name (EssentialsX#6448)
EssentialsX@5abe8b6 Fix server freezing with /give (EssentialsX#6449)
EssentialsX@9c83333 Fix integer overflow with /burn + /more & fix % in chat formats (EssentialsX#6452)
EssentialsX@297d0e4 Migrate Vault and emoji-java dependencies away from Jitpack (EssentialsX#6458)
EssentialsX@9d70fdb Add MiniMessage support for thunder enabled / disabled (EssentialsX#6454)
EssentialsX@302653a Fix workflow artifact upload paths missing X in EssentialsX addon jar names (EssentialsX#6462)
EssentialsX@482175e Prevent running recipe command while sleeping (EssentialsX#6455)
EssentialsX@d7452bf Fix stale shadow include group ID for emoji-java in EssentialsDiscord (EssentialsX#6467)
EssentialsX@8e3b24f Minecraft 26.1 (EssentialsX#6473)
EssentialsX@5d535dc Support new PaperMC versioning scheme in VersionUtil (EssentialsX#6480)
EssentialsX@c26909e Add alias ver for the version subcommand (EssentialsX#6481)
EssentialsX@218e004 Bump supported versions to 26.1.1 (EssentialsX#6482)
EssentialsX@637ac8f Fix version comparison logic for pre-release/snapshot/rc variants (EssentialsX#6483)
EssentialsX@716a61e Mitigate Discord 429s (EssentialsX#6461)
EssentialsX@5a78df5 Add option to allow fishing when afk (EssentialsX#6465)
EssentialsX@0845ea6 Fixed NoSuchMethodException Player.getRespawnLocation() (EssentialsX#6460)
EssentialsX@08b7fe3 Add PreTransactionEvent (EssentialsX#6370)
EssentialsX@f5fc430 fix(fly): persist fly mode and restore on join (EssentialsX#6403)
EssentialsX@236ce88 Add /unmute command and broadcast on unmute (EssentialsX#6491)
EssentialsX@86621cd Don't enable fly mode on login when player is in water (EssentialsX#6490)
EssentialsX@73aa657 Reject Windows reserved filenames in /setwarp (EssentialsX#6487)
EssentialsX@00b4a5b Make /flyspeed and /walkspeed force the correct speed type (EssentialsX#6485)
EssentialsX@4db09f2 Change default max-nick-length to 16 (EssentialsX#6484)
EssentialsX@ddaadf2 Add socialSpyCmdFormat message key for command social spy (EssentialsX#6489)
EssentialsX@add5eb7 Add permission cache system + permission for vanish item pickup (EssentialsX#6488)
EssentialsX@fb669aa Remove extractUrls from default legacy serializer (EssentialsX#6492)
EssentialsX@1038b3a Fix incorrect teleport safety message (EssentialsX#6486)
EssentialsX@63e7c4d Bump supported versions to 26.1.2 (EssentialsX#6500)
EssentialsX@f39bc91 Fix version parsing for local paper builds (EssentialsX#6501)
EssentialsX@7f37b5e Fix minimessage parsing in playerlist keyword replacement (EssentialsX#6505)
EssentialsX@678bacf Suppress advancement broadcast for vanished players on Paper (EssentialsX#6513)
EssentialsX@e9f3677 Fix /eco ignoring locale-specific decimal separators (EssentialsX#6511)
EssentialsX@b594358 Fix VanishStatusChangeEvent NPE and document parameter inversion (EssentialsX#6510)
EssentialsX@57a8c59 Fix /time overriding player's /ptime setting (EssentialsX#6509)
EssentialsX@3d03cf3 Fix command descriptions not using player's locale (EssentialsX#6508)
EssentialsX@936a2c0 Fix SocialSpy local chat color bleeding from player display name (EssentialsX#6507)
EssentialsX@97fd560 Fix {USERNAME} underscore escaping in kit items (EssentialsX#6514)
EssentialsX@87bde72 Fix consoleName translation key not working (EssentialsX#6506)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants