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.`);
}
});```
#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)
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
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.
U need to keep let ai fix the code until it not have any error
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
@earnest elm Does my code work or not? If yes, please let me know. Thanks.