33 lines
1.5 KiB
C#
33 lines
1.5 KiB
C#
using System;
|
|
using CitizenFX.Core;
|
|
using CitizenFX.Core.Native;
|
|
using Framework.Server.Extensions;
|
|
using Framework.Shared.Models;
|
|
|
|
namespace Framework.Server.Handlers {
|
|
public static class JoinHandler {
|
|
|
|
public static readonly Vector3 Spawn = new Vector3(258.7932f, -942.7487f, 29.3940f);
|
|
|
|
public static async void OnPlayerJoining([FromSource] Player player) {
|
|
API.SetPlayerRoutingBucket(player.Handle, player.ServerId());
|
|
API.SetRoutingBucketPopulationEnabled(player.ServerId(), false);
|
|
API.SetRoutingBucketEntityLockdownMode(player.ServerId(), "strict");
|
|
API.SetPlayerInvincible(player.Handle, true);
|
|
|
|
var identifier = "steam:" + player.Identifiers["steam"];
|
|
var result = await MySql.FetchAll($"SELECT * FROM players WHERE owner = '{identifier}'");
|
|
|
|
if (result.Length == 0) player.TriggerEvent("client:spawn:register");
|
|
else player.TriggerEvent("client:spawn:choose", result);
|
|
}
|
|
|
|
public static async void OnRegister([FromSource] Player player, dynamic dData) {
|
|
var data = new PlayerData(dData);
|
|
var identifier = "steam:" + player.Identifiers["steam"];
|
|
await MySql.Execute($"INSERT INTO players VALUES ('{identifier}', '{Guid.NewGuid()}', {data.sex}, {data.height}, '{data.firstName}', '{data.lastName}', '{data.birth}', '{data.skin}')");
|
|
player.Character.Position = Spawn;
|
|
}
|
|
|
|
}
|
|
} |