Skip to content

CraftItemEvent triggers to often #11157

@notKolja

Description

@notKolja

Expected behavior

Player Crafts something and picks it up, for example you craft planks with an stack of Logs, now the planks you have on your Cursor are 64, now the event shouldnt trigger.

Observed/Actual behavior

Player Crafts something and picks it up, for example you craft planks with an stack of Logs, now the planks you have on your Cursor are 64, now the event triggers

Steps/models to reproduce

@EventHandler
public void onBuildingBlockCrafting(CraftItemEvent event){
    Material resultMaterial = event.getCurrentItem().getType();
    UUID uuid = event.getWhoClicked().getUniqueId();
    Player player = (Player) event.getWhoClicked();
    double multiplier = event.getCurrentItem().getAmount() + Maths.getJobEPFormel(8, event.getWhoClicked().getUniqueId());

    if (resultMaterial == Material.OAK_PLANKS ||
            resultMaterial == Material.SPRUCE_PLANKS ||
            resultMaterial == Material.BIRCH_PLANKS ||
            resultMaterial == Material.JUNGLE_PLANKS ||
            resultMaterial == Material.ACACIA_PLANKS ||
            resultMaterial == Material.DARK_OAK_PLANKS ||
            resultMaterial == Material.CHERRY_PLANKS ||
            resultMaterial == Material.CRIMSON_PLANKS ||
            resultMaterial == Material.WARPED_PLANKS){
        playerDB.addJobXP(0.03 * multiplier, uuid, 8);
        player.sendActionBar( "§e§l\uD83D\uDD28 §8§l| §7Du hast §6"+Maths.formatedDouble(0.03 * multiplier)+" §7JOB-EP verdient! §8(§7" + Maths.formatedDouble(playerDB.getJobXP(uuid, 8)) + "§6/§7" + getJobRequirement(8, uuid) + "§8) §8§l| §e§l\uD83D\uDD28");
    }
}

Plugin and Datapack List

ChestShop, CinematicStudio, DecentHolograms, FastAsyncWorldEdit, floodgate, Geyser-Spigot, GILBadges, GILCaseOpening, GILClans, GILCore, GILEssentials, GILFarmwelt, GILJobs (the plugin with the CraftItemEvent), GILKits, GILPlotUtil, GILRTP, ItemsAdder, LoneLibs, LuckPerms, Multiverse-Core, PlaceholderAPI, PlotSquared, ProtocolLib, SCore, TAB, Vault, ViaVersion

everything with GIL in front of it is my own Plugin.

Paper version

This server is running Paper version git-Paper-196 (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT) (Git: 773dd72)
You are running the latest version

Other

i fixed it with an if query that just gets if the item amount of event.getCurrentItem() fits into event.getWhoClicked().getItemOnCursor().getAmount()

    if (event.getCurrentItem().getAmount() + event.getWhoClicked().getItemOnCursor().getAmount() > event.getCurrentItem().getMaxStackSize() || event.getWhoClicked().getItemOnCursor().getType() != resultMaterial){
        return;
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    status: acceptedDisputed bug is accepted as valid or Feature accepted as desired to be added.type: bugSomething doesn't work as it was intended to.version: 1.20.1Game version 1.20.1

    Type

    No fields configured for Bug.

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions