#Cancel Message But Replace Item With Message

1 messages · Page 1 of 1 (latest)

maiden basin
#

I See That They Changed The World Event To Read Only For beforeEvent.chatSend, But How Would I Change The Item With The Message If I'm Canceling The Event ```js
import { world, system } from "@minecraft/server"

world.beforeEvents.chatSend.subscribe((data) => {
if (data.message.startsWith('rename')) {

    data.cancel = true;
    const player = data.sender;
    const container = player.getComponent("inventory").container;
    const item = container.getItem(player.selectedSlot);

    system.run(() => {

        const message = data.message;
        const player = data.sender;
        const name = message
        item.nameTag = name;
        container.setItem(player.selectedSlot, item)

    });
}

});```

heady spindle
#
import { world, system } from "@minecraft/server"

world
 .beforeEvents
 .chatSend
 .subscribe( async data => {
  const message = data.message;
  const player = data.sender;

  if (! message.startsWith('rename')) return;

  data.cancel = true;

  const container = player
    .getComponent("inventory")
    .container;

  const item = container
    .getItem(player.selectedSlot);

  const name = message.replace( /^\w+\s*/, "" )

  await null

  item.nameTag = name;

  container
    .setItem(player.selectedSlot, item)

});```
maiden basin
maiden basin
#

It Says It ItemStack::nameTag Doesn't Have Privilege's

heady spindle
#

try now

#

i edited the code

maiden basin
heady spindle
#

oh

maiden basin
#

I Fixed It

#

Also I Never Knew You Could Setup Events Like This js world .beforeEvents .chatSend .subscribe( async data => { const message = data.message; const player = data.sender;

heady spindle
#

oh

heady spindle
maiden basin
#

Did You Do This js const name = message.split(' ').slice(1).join(' '); Or something Else

#

With The Code You Had Edited

heady spindle
#

i dont like that one

#

i preffer regex

maiden basin
#

Could I see That One

heady spindle
#

message.replace( /^\w+\s*/, "" )
says

  • ^ starts with
  • \w+ one or more letters A-z0-9
  • \s* zero or more spaces

and replace them with empty string ""

#

see the updated code

maiden basin
#

Cool, Thanks For The Help @heady spindle