Skip to content
This repository has been archived by the owner on Jun 5, 2024. It is now read-only.

Commit

Permalink
Teleport Player
Browse files Browse the repository at this point in the history
  • Loading branch information
Stuyk committed Apr 3, 2023
1 parent 2b4a7e1 commit 94f5f1a
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
- Added in-game editor for debug mode / admins
--- Command is /editor
- Fixed restrict function
- Athena.player.teleport
--------------------------------------
--- Everything Below is Before April 2
Expand Down
1 change: 1 addition & 0 deletions src/core/server/player/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ export * as permission from '@AthenaServer/player/permissions';
export * as safe from '@AthenaServer/player/safe';
export * as set from '@AthenaServer/player/setter';
export * as sync from '@AthenaServer/player/sync';
export * as teleport from '@AthenaServer/player/teleport';
export * as toolbar from '@AthenaServer/player/toolbar';
export * as weapons from '@AthenaServer/player/weapons';
85 changes: 85 additions & 0 deletions src/core/server/player/teleport.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import * as alt from 'alt-server';
import * as Athena from '@AthenaServer/api';

/**
* Teleport first player to second player.
*
* @export
* @param {alt.Player} player
* @param {alt.Player} target
*/
export function goto(player: alt.Player, target: alt.Player | string | number) {
if (typeof target === 'string' || typeof target === 'number') {
target = Athena.systems.identifier.getPlayer(target);
}

if (typeof target === 'undefined') {
return;
}

player.pos = target.pos;
}

/**
* Teleport second player to first player.
*
* @export
* @param {alt.Player} player
* @param {*} target
* @return {*}
*/
export function toMe(player: alt.Player, target: alt.Player | string | number) {
if (typeof target === 'string' || typeof target === 'number') {
target = Athena.systems.identifier.getPlayer(target);
}

if (typeof target === 'undefined') {
return;
}

target.pos = player.pos;
}

/**
* Teleport many players to the a player.
*
* @export
* @param {alt.Player} target
* @param {(alt.Player[] | number[] | string[])} players
*/
export function manyPlayersToAnotherPlayer(target: alt.Player, players: alt.Player[] | number[] | string[]) {
for (let somePlayer of players) {
toMe(target, somePlayer);
}
}

/**
* Teleport a player to a vehicle.
*
* @export
* @param {alt.Player} player
* @param {alt.Vehicle} vehicle
*/
export function toVehicle(player: alt.Player, vehicle: alt.Vehicle) {
if (!vehicle || !vehicle.valid) {
return;
}

player.pos = vehicle.pos;
}

/**
* Teleport a player to a position.
*
* @export
* @param {alt.Player} player
* @param {alt.IVector3} pos
*/
export function toPosition(player: alt.Player, pos: alt.IVector3) {
Athena.player.safe.setPosition(player, pos.x, pos.y, pos.z, false);
}

Athena.systems.defaults.time.disable();



0 comments on commit 94f5f1a

Please sign in to comment.