# Objective untuk menampilkan jumlah item yang dipindahkan dari slot 26. # Aman walaupun dijalankan berulang; jika objective sudah ada, command ini hanya gagal diam-diam. scoreboard objectives add trashslot_count dummy scoreboard objectives add trashslot_success dummy # Tandai player yang sedang berada di mode bebas. # Tag ini dipakai untuk mendeteksi transisi dari creative/spectator ke survival/adventure. tag @a[gamemode=creative] add ts_free_mode tag @a[gamemode=spectator] add ts_free_mode tag @a[gamemode=creative] remove ts_transition_checked tag @a[gamemode=spectator] remove ts_transition_checked tag @a[gamemode=creative] remove ts_slot26_protected tag @a[gamemode=spectator] remove ts_slot26_protected # Hapus hanya icon Trash Slot saat player masuk creative/spectator. # Jangan pakai item replace inventory.26 with air tanpa kondisi, karena itu akan # menghapus item apa pun yang ditaruh player di slot 26 setiap tick. clear @a[gamemode=creative] minecraft:barrier{CustomModelData:87274} 1 clear @a[gamemode=spectator] minecraft:barrier{CustomModelData:87274} 1 # Bersihkan item trash lama dari player survival/adventure. clear @a[gamemode=!creative,gamemode=!spectator] minecraft:barrier{CustomModelData:87274} # Saat baru pindah dari creative/spectator ke survival/adventure, selamatkan item asli di slot 26 satu kali saja. # NBT Slot 35b = command slot inventory.26. execute as @a[gamemode=!creative,gamemode=!spectator,tag=ts_free_mode,tag=!ts_transition_checked] at @s if predicate trashslot:allowed_dimension if data entity @s Inventory[{Slot:35b}] unless data entity @s Inventory[{Slot:35b,id:"minecraft:barrier",tag:{CustomModelData:87274}}] run function trashslot:save_slot_26 tag @a[gamemode=!creative,gamemode=!spectator,tag=ts_free_mode,tag=!ts_transition_checked] add ts_transition_checked tag @a[gamemode=!creative,gamemode=!spectator,tag=ts_free_mode,tag=ts_transition_checked] remove ts_free_mode # Jika player survival/adventure memang membuang item ke slot 26 saat Trash Slot aktif, hapus diam-diam. # Ini tidak menampilkan actionbar, dan tidak menjalankan fungsi pemindahan item. execute as @a[gamemode=!creative,gamemode=!spectator,tag=!ts_slot26_protected] at @s if predicate trashslot:allowed_dimension if data entity @s Inventory[{Slot:35b}] unless data entity @s Inventory[{Slot:35b,id:"minecraft:barrier",tag:{CustomModelData:87274}}] run item replace entity @s inventory.26 with air # Jika sebelumnya slot 26 dilindungi karena inventory penuh, lepaskan proteksi setelah slot 26 kosong. execute as @a[gamemode=!creative,gamemode=!spectator,tag=ts_slot26_protected] unless data entity @s Inventory[{Slot:35b}] run tag @s remove ts_slot26_protected # Pasang trash slot hanya kalau slot 26 kosong, supaya item asli tidak tertimpa. execute as @a[gamemode=!creative,gamemode=!spectator] at @s if predicate trashslot:allowed_dimension unless data entity @s Inventory[{Slot:35b}] run item replace entity @s inventory.26 with minecraft:barrier{CustomModelData:87274,HideFlags:32,display:{Name:'{"text":"Trash Slot","color":"dark_red","italic":false}',Lore:['{"text":"ZombiiAttack","color":"gray","italic":true}']}} # Hancurkan item trash yang terlempar ke world jika berupa item icon Trash Slot. kill @e[type=item,nbt={Item:{tag:{display:{Name:'{"extra":[{"italic":false,"color":"dark_red","text":"Trash Slot"}],"text":""}'}}}}]