#help

1 messages · Page 1 of 1 (latest)

radiant valve
#
    async function StatsALL(player) {
        const form = new ModalFormData();
        const playerNames = world.getAllPlayers().map(p=>p.name)
        form.title(`§cView Player's Stats`);
        form.dropdown('§c\nSelect The Player!', playerNames);
        form.show(player).then(result => {
            const displayName = result.formValues[0].toString()
            
            for (const targetName of world.getDimension("overworld").getEntities({name:[displayName],type:["minecraft:player"]})) {
            const kills = world.scoreboard.getObjective("Kills2").getScore(targetName)
            const deaths = world.scoreboard.getObjective("Death").getScore(targetName)
            const kdr = world.scoreboard.getObjective("KDR").getScore(targetName)
          if (result.canceled) return;
          if (!result.canceled) {return openStatsForm(player, displayName, kills, deaths, kdr)}

        }})};
        async function openStatsForm(player, displayName, kills, deaths, kdr) {
            const form = new ActionFormData()
            form.title(`${displayName}'s Stats`)
            form.body(`${displayName}'s Stats\n\n§6Kills §r: ${kills}\n§4Deaths §r: ${deaths}\n§cKDR §r/: ${kdr}`)
            form.button(`§9Achievements\n§8View Achievements`, "textures/ui/achievements")
            form.button('§cExit\n§8Leave this menu.', 'textures/ui/realms_red_x')
            const { selection, canceled } = await form.show(player);
            if (canceled) return
            if (selection == 0) return openAdvForm(player)
            if (selection == 1) return 
        }```
radiant valve
#

anyone

#

want to help me

indigo oriole
#

@radiant valve whats the issue

radiant valve
#

@indigo oriole

urban fieldBOT
#
Debug Result

There are 7 errors in this [code](#1167678570840199231 message):

<repl>.js:7:33 - error TS18048: 'result.formValues' is possibly 'undefined'.

7             const displayName = result.formValues[0].toString()
                                  ~~~~~~~~~~~~~~~~~

``````ansi
<repl>.js:9:83 - error TS2322: Type 'string[]' is not assignable to type 'string'.

9             for (const targetName of world.getDimension("overworld").getEntities({name:[displayName],type:["minecraft:player"]})) {
                                                                                    ~~~~

``````ansi
<repl>.js:9:102 - error TS2322: Type 'string[]' is not assignable to type 'string'.

9             for (const targetName of world.getDimension("overworld").getEntities({name:[displayName],type:["minecraft:player"]})) {
                                                                                                       ~~~~

``````ansi
<repl>.js:10:27 - error TS2532: Object is possibly 'undefined'.

10             const kills = world.scoreboard.getObjective("Kills2").getScore(targetName)
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``````ansi
<repl>.js:11:28 - error TS2532: Object is possibly 'undefined'.

11             const deaths = world.scoreboard.getObjective("Death").getScore(targetName)
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``````ansi
<repl>.js:12:25 - error TS2532: Object is possibly 'undefined'.

12             const kdr = world.scoreboard.getObjective("KDR").getScore(targetName)
                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``````ansi
<repl>.js:25:40 - error TS2304: Cannot find name 'openAdvForm'.

25             if (selection == 0) return openAdvForm(player)
                                          ~~~~~~~~~~~

radiant valve
#

@prisma sable

prisma sable
#

Uh

#

Well I have the fixed get entity command

#
const entity = [...world.getDimension("overworld").getEntities({type:"minecraft:player",name:displayName})][0]
radiant valve
#

still getting the error

#

with this code

#
    async function StatsALL(player) {
        const form = new ModalFormData();
        const playerNames = world.getAllPlayers().map(p=>p.name)
        form.title(`§cView Player's Stats`);
        form.dropdown('§c\nSelect The Player!', playerNames);
        form.show(player).then(result => {
            const displayName = `${result.formValues[0]}`
            
            const targetName = [...world.getDimension("overworld").getEntities({type:"minecraft:player",name:displayName})][0]
            const kills = world.scoreboard.getObjective("Kills2").getScore(targetName)
            const deaths = world.scoreboard.getObjective("Death").getScore(targetName)
            const kdr = world.scoreboard.getObjective("KDR").getScore(targetName)
          if (result.canceled) return;
          if (!result.canceled) {return openStatsForm(player, displayName, kills, deaths, kdr)}

        })};
        async function openStatsForm(player, displayName, kills, deaths, kdr) {
            const form = new ActionFormData()
            form.title(`${displayName}'s Stats`)
            form.body(`${displayName}'s Stats\n\n§6Kills §r: ${kills}\n§4Deaths §r: ${deaths}\n§cKDR §r/: ${kdr}`)
            form.button(`§9Achievements\n§8View Achievements`, "textures/ui/achievements")
            form.button('§cExit\n§8Leave this menu.', 'textures/ui/realms_red_x')
            const { selection, canceled } = await form.show(player);
            if (canceled) return
            if (selection == 0) return openAdvForm(player)
            if (selection == 1) return 
        }```
prisma sable
#

does it say a line?

radiant valve
#

no

prisma sable
#

It worked for me

#

wait wtf

radiant valve
#

the whole code?

#

or just entity line?

prisma sable
#

ohhhhhhhhhhhhhhhhh

#

I know what happened

radiant valve
#

?

prisma sable
#

Mind if I just change up your code a little and send it back? I can highlight where I changed and why so you know what I did but its kinda difficult to fix it otherwise

radiant valve
#

u can

prisma sable
#
async function StatsALL(player) {
    const form = new ModalFormData();
    const players = world.getAllPlayers() //Removed the map because you need to save players in general
    form.title(`§cView Player's Stats`);
    form.dropdown('§c\nSelect The Player!', players.map(p=>p.name)); //Mapped players to player names because I removed the map at the declaration
    form.show(player).then(result => {
        const displayName = players.map(p=>p.name)[result.formValues[0]] //Changed to get the display name because result.formValues[0] returns the index of the choice not the name of the choice 
        
        const targetName = [...world.getDimension("overworld").getEntities({type:"minecraft:player",name:displayName})][0]
        const kills = world.scoreboard.getObjective("Kills2").getScore(targetName)
        const deaths = world.scoreboard.getObjective("Death").getScore(targetName)
        const kdr = world.scoreboard.getObjective("KDR").getScore(targetName)
      if (result.canceled) return;
      if (!result.canceled) {return openStatsForm(player, displayName, kills, deaths, kdr)}

    })};
    async function openStatsForm(player, displayName, kills, deaths, kdr) {
        const form = new ActionFormData()
        form.title(`${displayName}'s Stats`)
        form.body(`${displayName}'s Stats\n\n§6Kills §r: ${kills}\n§4Deaths §r: ${deaths}\n§cKDR §r/: ${kdr}`)
        form.button(`§9Achievements\n§8View Achievements`, "textures/ui/achievements")
        form.button('§cExit\n§8Leave this menu.', 'textures/ui/realms_red_x')
        const { selection, canceled } = await form.show(player);
        if (canceled) return
        if (selection == 0) return openAdvForm(player)
        if (selection == 1) return 
    }```
#

There

#

I put long comments on why I did what I did

radiant valve
#

ok

#

thanks dude