0

Is there a way to create a Minecraft scoreboard object that counts all kinds of stone?

Like:

/scoreboard objectives add stonecounter stats.useItem.1
/scoreboard objectives add stonebrickcounter stats.useItem.X
/scoreboard objectives add cobblestonecounter stats.useItem.XX

and then sum all the objectives to one allstonecounter and display that number on the sideboard?

Something like:

/scoreboard objectives setdisplay sideboard (stonecounter+stonebrickcounter+cobblestonecounter)

1 Answer 1

3

You can use scoreboard operations to add one score to another.

/scoreboard players operation <affected_target> <affected_objective> <operation> <target> <objective>

Operations available: +=, -=, *=, /=, %=, <, >, ><, =

More information concerning scoreboards can be found here.

Prerequisites:

You will need another objective to hold the value:

/scoreboard objectives add stonetotal dummy

Clock commands:

The following must be run in numerical order on a clock.

  1. Reset all player's "stonetotal" score to 0. Without this, their score will constantly increase.

     /scoreboard players set @a[score_stonetotal_min=1] stonetotal 0
    
  2. Cause all players to run the /scoreboard command, targeting their own scores. They will increment their "stonetotal" score equal to their respective stone scores.

     /execute @a ~ ~ ~ /scoreboard players operation @a[c=1] stonetotal += @a[c=1] stonecounter
     /execute @a ~ ~ ~ /scoreboard players operation @a[c=1] stonetotal += @a[c=1] stonebrickcounter
     /execute @a ~ ~ ~ /scoreboard players operation @a[c=1] stonetotal += @a[c=1] cobblestonecounter
    
7
  • I don't think you need to execute the scoreboard operation, you can use @a stonetotal += * ... (if memory serves). Also, if you are going to execute the operation, why not use @p in the scoreboard portion?
    – MBraedley
    Commented Jan 2, 2016 at 1:33
  • @MBraedley IIRC, @p doesn't select dead players, whereas @a[c=1] can.
    – SirBenet
    Commented Jan 2, 2016 at 1:49
  • But, IIRC, @a (without the argument) doesn't select dead players either. Or maybe I'm just thinking about a specific use of /tp.
    – MBraedley
    Commented Jan 2, 2016 at 1:50
  • @MBraedley If you don't use /execute, then you will be unable to change specific playerscores based on their own score. You'd instead either be changing a single player's score based on the collective scores, or changing all playerscores based on a single target's score. Using /execute is to split the senders up so they can increment their own scores based on their own scores. @a is the only target selector that can target dead players, so mixing @a with @p is not recommended.
    – Skylinerw
    Commented Jan 2, 2016 at 1:54
  • 1
    @MBraedley You can join multiple players onto a LAN world with just one account, or test with fake scoreboard players.
    – SirBenet
    Commented Jan 2, 2016 at 2:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.