#How do i make so when you click on a block you can get an item?

10 messages · Page 1 of 1 (latest)

lethal cryptBOT
#

Once your question has been answered, please close this post with </resolve:1050379261372006400> command!

shadow sun
#

block.left_click event and event.player.give() function

dry bluff
#

In essence yes, however I think event.target.type isn't necessarily what you want, unless that's actually returning the block name, which I think event.block.id would actually yield the block name

dry bluff
#

There are a few ways to do that, yes

But it would involve tagging the player, and removing that tag after X amount of time

Something like

onEvent('block.left_click', event => {
  if (event.player.hasGameStage('preventCobble')) { return }
  if (event.block.id != "compactmachines:solid_wall") { return }
  event.player.give("cobblestone")
  event.player.addGameStage('preventCobble')
  event.server.schedule(5000, event, callback => {
    //5000 should be milliseconds, so 1000 ms is 1 s, so 5000 = 5 s
    callback.player.removeGameStage('preventCobble')
  })
})
#

Just to note, that code is pseudo code, it hasn't been tested

#

You can change it up a little bit, maybe use an object where all the keys are the block to left click, and the value of that key is the item they get back

dry bluff
#
const blocks = {
  'compactmachines:solid_wall': { item: 'minecraft:cobblestone', tag: 'preventCobble' }
  'minecraft:grass': { item: 'minecraft:apple', tag: 'preventApple' }
}

onEvent('block.left_click', event => {
  if (blocks[events.block.id] == undefined) { return }
  if (event.player.hasGameStage(blocks[events.block.id].tag)) { return }
  event.player.give(blocks[events.block.id].item)
  event.player.addGameStage(blocks[events.block.id].tag)
  event.server.schedule(5000, event, callback => {
    //5000 should be milliseconds, so 1000 ms is 1 s, so 5000 = 5 s
    callback.player.removeGameStage(blocks[callback.block.id].tag)
  })
})
#

Something like this

dry bluff
#

No problem, remember to use the /resolve command if your question has been solved

lethal cryptBOT
#

Ticket closed!