#[Scripting][error]-TypeError: not a function at <anonymous> (main.js:12)

1 messages · Page 1 of 1 (latest)

rapid wagon
#

world.beforeEvents.chatSend.subscribe((eventData) => {
    const player = eventData.sender;
    switch (eventData.message) {
        case "!gmc":
            eventData.cancel = true;
            player.runCommandAsync("gamemode c");
            break;
        case "!gms":
            eventData.cancel = true;
            player.runCommandAsync("gamemode s");
            break;
        default:
            break;
    }
});

The manifest is also on v2 beta.

silver meadow
#

ahh, the runCommandAsync

#

yeah it's removed use system.run() and runCommand now

#

Also, just use API version instead.

rapid wagon
#

Still didn't work.

silver meadow
#
world.beforeEvents.chatSend.subscribe((ev, { message, sender: player } = ev) => {
  switch (message) {
    case '!gms':
      ev.cancel = true;
      system.run(() => player.setGameMode('survival') );
      break;

    case '!gmc':
      ev.cancel = true;
      system.run(() => player.setGameMode('creative') );
      break;

    default:
      break;
  }
});```
rapid wagon
#

I'm pretty new to JS so idk how i can add the system.run

silver meadow
rapid wagon
#

Alright tysm

rapid wagon
#

@silver meadow Can i add arguements to this? Like !gmc (username)

#

Something like that

silver meadow
rapid wagon
#

as i said 0 knowledge

silver meadow
rapid wagon
#

etc.

#

On Realms for example you can't ban players with OP unless you're the Owner.

silver meadow
# rapid wagon I will make /warn
world.beforeEvents.chatSend.subscribe(ev => {
  const { message, sender } = ev; // get message and sender
  const [cmd, ...args] = message.split(' '); // split command and args
  
  if (cmd === '!gms' || cmd === '!gmc') { // check if command is valid
    ev.cancel = true; // cancel original message
    
    // find target player (args or sender)
    let targetPlayer = args.length ? 
      world.getAllPlayers().find(p => p.name.toLowerCase() === args.join(' ').toLowerCase()) : 
      sender;
    if (!targetPlayer && args.length) return sender.sendMessage(`§cPlayer not found!`); // error if no player
    
    const gameMode = cmd === '!gms' ? 'survival' : 'creative'; // set gamemode
    system.run(() => targetPlayer.setGameMode(gameMode)); // run safely
    
    // send confirmation
    if (targetPlayer === sender) sender.sendMessage(`§aGame mode set to ${gameMode}`);
    else {
      sender.sendMessage(`§aSet ${targetPlayer.name}'s game mode to ${gameMode}`);
      targetPlayer.sendMessage(`§a${sender.name} set your game mode to ${gameMode}`);
    }
  }
});```
rapid wagon
#

Oh tysm

silver meadow
rapid wagon
#

TYSMM

#

Dude ur an absolute legend

#

I'll do the warn thing myself then

#

Oh it worked NICE

silver meadow
#

of course lol.