const players = world.getAllPlayers().map((player) => player = player.name);
let tpForm = new ModalFormData();
tpForm.title("§aTp Menu§r");
tpForm.dropdown("§eSelect the player§r",players);
tpForm.show(sender).then((r)=> {
let [ dropdown, textField ] = r.formValues
const target = players[dropdown];
if(target === sender.name){
sender.runCommandAsync(`tellraw @s {"rawtext":[{"text":"You can't select yourself"}]}`);
return
} else {
sender.runCommandAsync(`tp @s ${target}`)
}
})
};```
#could someone help me with a tp menu (to a player)
1 messages · Page 1 of 1 (latest)
This isn’t the whole code bc the code is too long
@timid oriole could u help
I want a cooler one
With like !tpaccept Player Name
leme cook some spoiled code of mine
Ok
function ALERT_BOX(title, message, button = []) {
return new MessageFormData()
.title(title ? { translate: "gui." + title } : "")
.body(message ? { translate: "gui." + message } : "")
.button2(button ? { translate: "gui." + button[1] } : "")
.button1(button ? { translate: "gui." + button[0] } : "");
};
function tpMenu(sender) {
const players = world.getPlayers({ excludeNames: [sender.name] });
if (!players.length) {
return ALERT_BOX(
"error",
"No other players online",
["exit", "tryAgain"])
.show(sender).then(r => {
r.canceled || r.selection && tpMenu(sender);
})
}
let tpForm = new ModalFormData();
tpForm.title("§aTp Menu§r");
tpForm.dropdown("§eSelect the player§r", players.map(p => p.name));
tpForm.show(sender).then((r) => {
if (r.canceled) return;
const target = players[r.formValues[0]];
if (!target.isValid()) {
return ALERT_BOX(
"error",
"The chosen player is not online!",
["exit", "ok"]
).show(sender)
}
ALERT_BOX(
"TP request",
sender.name + " wants to TP to you!",
["no", "yes"])
.show(target).then(r=>{
if (r.canceled || !r.selection){
if (!sender.idValid()) return;
return ALERT_BOX(
"error",
"Your TP request has been canceled!",
["exit", "ok"]
).show(sender)
}
else if (r.selection && sender.isValid()){
sender.teleport(target.location, target)
}
})
})
};
How does it work?
form on player
when empty/the player will receive the alert message
How to open the menu