Skip to content

CraftItemEvent triggers to often #11157

@notPhyx

Description

@notPhyx

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

    Type

    Projects

    • Status

      🕑 Needs Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions