I am using a mod with the custom map I am making. The mod adds some commands, but they are far from perfect. For example, the command syntax goes like this:

/modcommand foo <PlayerName> DoThis

In a command block I put

/modcommand foo feldspar15523 DoThis

And everything works as expected. However, if I do this:

/modcommand foo @p DoThis

The mod thinks that the player's name is literally @p. My idea was to make it so that when I trigger the block, it first makes another Command Block that has the name of the nearest player in it in the right place. Here is what I need in pseudocode:

/setblock ~ ~+5 ~ minecraft:chain_command_block 1 replace {Command:"/modcommand foo "+ @p +" DoThis"}

This is impossible. Minecraft doesn't have variables like strings. The best you can do is to output the command in chat, like this:

/tellraw @s [{"text":"/setblock ~ ~5 ~ chain_command_block 1 replace {Command:\"modcommand foo "},{"selector":"@p"},{"text":" DoThis\"}"}]

If you have the log output open, you can then copy the command into chat and run it. A modded client could also automatically execute it, but not a regular Vanilla client.

| improve this answer | |
  • I think I got it. Would it work to place a sign that has that command with the name in it and have the user run the command on right click? – Feldspar15523 Jun 18 '18 at 18:21
  • Before I wrote that answer, I tried to put together a clickEvent with a selector in it in tellraw, but sadly the value of that only allows a single string, not another JSON object. And if it was possible, people would certainly already abuse it to no end. :D – Fabian Röling Jun 18 '18 at 18:32
  • I am making a custom altar that runs the command from the mod. The command is only supposed to be for cheating, but I am making an altar that runs the command. Selectors don't work in the cheat command. What would work is have the trigger from the altar trigger a command block that places a sign that runs two commands on click: /modcommand foo <Nearest player's name> DoThis and /setblock ~ ~ ~ air. I am sorry I was not very clear. – Feldspar15523 Jun 18 '18 at 18:41
  • Your initial question was clearer than that comment. What mod? – Fabian Röling Jun 18 '18 at 18:42
  • Avatar mod 2:minecraft.curseforge.com/projects/… The exact command is /avatar bending add <Name> all. – Feldspar15523 Jun 18 '18 at 18:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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