File tree Expand file tree Collapse file tree
invui/src/main/java/xyz/xenondevs/invui/internal/menu Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44import net .minecraft .network .protocol .game .ServerboundRenameItemPacket ;
55import net .minecraft .world .inventory .MenuType ;
66import org .bukkit .entity .Player ;
7+ import org .bukkit .inventory .ItemStack ;
78import org .jspecify .annotations .Nullable ;
89import xyz .xenondevs .invui .internal .network .PacketListener ;
910
1415 */
1516public class CustomAnvilMenu extends CustomContainerMenu {
1617
18+ private static final int ENCHANTMENT_COST_DIRTY_MARKER = Integer .MIN_VALUE ;
19+
1720 private String renameText = "" ;
1821 private @ Nullable Consumer <? super String > renameHandler ;
1922
@@ -40,11 +43,22 @@ public void handleClosed() {
4043 super .handleClosed ();
4144 }
4245
46+ @ Override
47+ public void setItem (int slot , @ Nullable ItemStack item ) {
48+ super .setItem (slot , item );
49+
50+ // updating second input slot causes client-side prediction of enchantment cost
51+ if (slot == 1 ) {
52+ remoteDataSlots [0 ] = ENCHANTMENT_COST_DIRTY_MARKER ;
53+ }
54+ }
55+
4356 private void handleRename (ServerboundRenameItemPacket packet ) {
4457 renameText = packet .getName ();
4558 if (renameHandler != null )
4659 renameHandler .accept (renameText );
4760 remoteItems .set (2 , DIRTY_MARKER );
61+ remoteDataSlots [0 ] = ENCHANTMENT_COST_DIRTY_MARKER ;
4862 }
4963
5064 /**
You can’t perform that action at this time.
0 commit comments