#I was trying to make !tpa but It doesnt work and ive got no idea how to fix it

1 messages · Page 1 of 1 (latest)

earnest elm
#
world.beforeEvents.chatSend.subscribe(data => {
  let player = data.sender;
  let values = data.message.split(" ");
  if (values[0].startsWith("!")) {
    data.cancel = true;
    if (values[0] == "!tpa" ) system.run(() => tparequest())
    
    function tparequest() {
      values[1].addTag(`tpa_${player.nameTag}`)
      function isPlayerOnline(playerName) {
    let onlinePlayers = world.getPlayers();
    for (let currentPlayer of onlinePlayers) {
        if (currentPlayer.name === playerName) {
            return true;
        }
    }

    return false;
}

let playerNameToCheck = values[1];
let isOnline = isPlayerOnline(playerNameToCheck);
if (isOnline == false) return;
if (values[1] == player.nameTag) return;
player.sendMessage(`Successfully sent TPA to ${player.nameTag}`)
values[1].sendMessage(`${player.nameTag} sent you TPA. To accept write !tpaccept ${player.name}`)
    system.runTimeout(() => {
      values[1].removeTag(`tpa_${player.nameTag}`)
    }, 2000);
    }
if (values[0] == "!tpaccept") system.run(() => tpaccept())

function tpaccept() {
  if (!player.hasTag(`tpa_${values[1]}`)) return;
  player.runCommand(`tp ${values[1]} ${player.nameTag}`)
  player.removeTag(`tpa_${values[1]}`)
  player.sendMessage(`${values[1]} successfully teleported to you`)
  values[1].sendMessage(`You were successfully teleported to ${player.nameTag}`) 
}
} 
})
world.beforeEvents.PlayerLeave.subscribe(data => {
  let player = data.player
let playerTags = player.getTags();
    let tagsToRemove = playerTags.filter(tag => tag.startsWith("tpa_"));

    tagsToRemove.forEach(tag => player.removeTag(tag));
    if (tagsToRemove.length > 0) {
        console.log(`Removed tags for ${player.name} who is leaving: ${tagsToRemove.join(", ")}`);
    } else {
        console.log(`No tags starting with "tpa" for ${player.name} who is leaving.`);
    }
});```
onyx charm
#

Oh

#

I have tried coding

#

But it is not made into an addon

#

If you want the code I can give it to you, but I can't guarantee it will work 100%

#

U must test and debug it yourself BC I never used that I'm just coded

earnest elm
#

alr thx

#

well its ui form

#

but still

onyx charm
#

My suggestion is that you can use AI to improve when writing code

#

I have created an item logger using ai fully and it works perfectly.

earnest elm
#

I did

#

I use ai for things that I can't do

#

and things im sure I can do I do myself

onyx charm
#

U need to keep let ai fix the code until it not have any error

halcyon fog
#
import { world, system } from "@minecraft/server"

let req = {}

world.beforeEvents.chatSend.subscribe(data => {
  let player = data.sender
  let message = data.message
  if (!message.startsWith("!tpa")) return;
  data.cancel = true
  system.run(() => {
    let comp = message.split(" ")

    if (comp[1] == "accept") {
      let fromPlayer;
      for (let fromPlayerName of Object.keys(req)) {
        let req2 = req[fromPlayerName]
        if (req2.player.name == player.name) {
          if (req2.tick < system.currentTick) {
            player.sendMessage("Time to accept the request has expired")
            return;
          }
          fromPlayer = world.getPlayers({name:fromPlayerName})[0]
        }

        if (fromPlayer == undefined) {
          player.sendMessage("Looks like you haven't received any requests")
        } else {
          delete req[fromPlayer.name]
          player.teleport(fromPlayer.location, {
            dimension: fromPlayer.dimension
          })
          fromPlayer.sendMessage("Successful teleportation!")
          player.sendMessage("Successful teleportation!")
        }
      }
    } else {
      let toPlayer = world.getPlayers({name:comp[1]})[0]
      if (toPlayer == undefined) {
        player.sendMessage("Could not find player")
      } else {
        req[player.name] = {
          tick: system.currnetTick + 20*45,
          player: toPlayer
        }
        toPlayer.sendMessage(player.name + " sent you a teleportation request. Write '!tpa accept' to accept.")
      }
    }
  })
})```
#

Haven't tried it, but it should work

onyx charm
#

@earnest elm Does my code work or not? If yes, please let me know. Thanks.

earnest elm
#

idk

#

havent tested yegye