#could someone help me with a tp menu (to a player)

1 messages · Page 1 of 1 (latest)

ebon forum
#
    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}`)
        }
    })
};```
#

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

timid oriole
#

leme cook some spoiled code of mine

ebon forum
#

Ok

timid oriole
# ebon forum ```function tpMenu(sender){ const players = world.getAllPlayers().map((playe...

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)
                }
            })
    })
};
timid oriole
#

form on player
when empty/the player will receive the alert message

ebon forum
#

How to open the menu

timid oriole
#

when there's a target, they get notified

#

tpMenu(player)

#

how do u even use it?

ebon forum
#

True

#

I remember