Fix search item being sent to player inventory
This commit is contained in:
@@ -33,16 +33,27 @@ class AnvilSearchMenu(
|
|||||||
AnvilSearchTracker.register(player, this)
|
AnvilSearchTracker.register(player, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onClick(event: InventoryClickEvent, view: AnvilView) {
|
fun onClick(
|
||||||
|
event: InventoryClickEvent,
|
||||||
|
view: AnvilView
|
||||||
|
) {
|
||||||
event.isCancelled = true
|
event.isCancelled = true
|
||||||
if ( event.rawSlot != 2 ) return
|
if ( event.rawSlot != 2 ) return
|
||||||
|
|
||||||
val query = view.renameText ?: ""
|
val query = view.renameText ?: ""
|
||||||
|
|
||||||
if ( !player.itemOnCursor.type.isAir ) {
|
// Output-Slot leeren - verhindert dass das Item clientseitig ins Inventar wandert
|
||||||
|
view.topInventory.setItem( 2, null )
|
||||||
|
|
||||||
|
// Cursor leeren (Fallback für shift-click o.ä.)
|
||||||
|
if ( !player.itemOnCursor.type.isAir )
|
||||||
|
{
|
||||||
player.setItemOnCursor(ItemStack( Material.AIR ))
|
player.setItemOnCursor(ItemStack( Material.AIR ))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Client-Inventar synchronisieren
|
||||||
|
player.updateInventory()
|
||||||
|
|
||||||
AnvilSearchTracker.unregister( player )
|
AnvilSearchTracker.unregister( player )
|
||||||
player.closeInventory()
|
player.closeInventory()
|
||||||
returnMenu.applySearch( query )
|
returnMenu.applySearch( query )
|
||||||
|
|||||||
Reference in New Issue
Block a user