Run command whenever someone joins a Minecraft server
First, create a scoreboard objective of type "stat.leaveGame":
/scoreboard objectives add quits stat.leaveGame
Next, put this commands into a always active repeating command block:
/execute as @a[scores={quits=1..}] at @s run <COMMAND TO RUN>
And in a chain command block in the direction that the first command block points to:
/scoreboard players set @a[scores={quits=1..}] quits 0
The command you put in the place of <COMMAND TO RUN>
will now run every time a player rejoins the game.
It's very simple. Using functions it'd look like:
Repeating command block:
execute as @a[tag=!Joined] run function1
function1
:
<insert commands>
tag @s add Joined
Using Command Blocks
-
Repeating, always active:
execute as @a[tag=!Joined] run <inert command you want to run>
-
Chain, conditional:
<commands>
-
Chain, conditional
execute as @a[tag=!Joined] run tag @s add Joined
The previous answer is good if you want it to run the command every time they join. (i see an exploit if its a good item)
If you only want it to run the command the first time they join, try this:
-
Run this in the chat:
/scoreboard objectives add joined dummy
-
In command blocks on a fill clock:
/scoreboard players add @a joined 0 /execute @a[score_joined=0] ~ ~ ~ [command you want to run]
-
And finally, this command in a command block powered by a comparator signal from the execute command
/scoreboard players set @a[score_joined=0] joined 1
And this will make sure that the command only runs the first time a player joins the server.