Merge branch 'hotfix/anticheat'

This commit is contained in:
hydrant
2021-04-11 22:50:16 +02:00
6 changed files with 37 additions and 26 deletions

View File

@@ -23,7 +23,8 @@
-2084633992, -2084633992,
-1075685676, -1075685676,
-1786099057, -1786099057,
-1074790547 -1074790547,
-1569615261
] ]
mp.events.add("playerJoin", () => { mp.events.add("playerJoin", () => {
@@ -152,7 +153,6 @@
checkWeaponhash() { checkWeaponhash() {
let h = this.weapon; let h = this.weapon;
if (allowedWeaponHashes.indexOf(h) === -1) { if (allowedWeaponHashes.indexOf(h) === -1) {
mp.gui.chat.push("unallowed weapon: " + h);
return true return true
} }
return false return false
@@ -189,12 +189,12 @@
let Difference = Behaviour.subtractVector(Behaviour.pos, mp.players.local.position) let Difference = Behaviour.subtractVector(Behaviour.pos, mp.players.local.position)
if (Math.abs(Difference.x) > 30 || Math.abs(Difference.y) > 30) { if (Math.abs(Difference.x) > 30 || Math.abs(Difference.y) > 30) {
if (Behaviour.isWalking()) { if (Behaviour.isWalking()) {
mp.events.callRemote("CLIENT:CheatDetection", "Flyhack/Teleport") //mp.events.callRemote("CLIENT:CheatDetection", "Flyhack/Teleport")
} }
} }
if (mp.players.local.vehicle) { if (mp.players.local.vehicle) {
if (Behaviour.checkCarPos(25)) { if (Behaviour.checkCarPos(25)) {
mp.events.callRemote("CLIENT:CheatDetection", "Vehicle Flyhack") //mp.events.callRemote("CLIENT:CheatDetection", "Vehicle Flyhack")
} }
if (Behaviour.VehicleFasterThan(250)) { if (Behaviour.VehicleFasterThan(250)) {
mp.events.callRemote("CLIENT:CheatDetection", "Vehicle Speedhack") mp.events.callRemote("CLIENT:CheatDetection", "Vehicle Speedhack")

View File

@@ -27,6 +27,7 @@ namespace ReallifeGamemode.Server.Events
//player.SetSharedData("vehicleAdminSpeed2", 1.0); //player.SetSharedData("vehicleAdminSpeed2", 1.0);
player.SetData("isLoggedIn", false); player.SetData("isLoggedIn", false);
player.SafeTeleport(new Vector3(-1883.736, -781.4911, -10)); player.SafeTeleport(new Vector3(-1883.736, -781.4911, -10));
player.Dimension = (uint)(player.Handle.Value + 1);
bool registered = false; bool registered = false;

View File

@@ -238,8 +238,12 @@ namespace ReallifeGamemode.Server.Events
} }
player.RemoveAllWeapons(); player.RemoveAllWeapons();
MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name);
if(task != null)
{
Player medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); Player medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName);
Medic.RemoveTaskFromList(task); Medic.RemoveTaskFromList(task);
}
player.SafeTeleport(new Vector3(-495.45, -336.33, 34.5), 0, true); player.SafeTeleport(new Vector3(-495.45, -336.33, 34.5), 0, true);
} }

View File

@@ -30,6 +30,13 @@ namespace ReallifeGamemode.Server.Events
public void OnPlayerDisconnected(Player player, DisconnectionType type, string reason) public void OnPlayerDisconnected(Player player, DisconnectionType type, string reason)
{ {
if (!player.IsLoggedIn()) return; if (!player.IsLoggedIn()) return;
using var saveUser = new DatabaseContext();
User user = player.GetUser(saveUser);
if(user == null)
{
return;
}
if (type == DisconnectionType.Left) if (type == DisconnectionType.Left)
{ {
@@ -49,7 +56,7 @@ namespace ReallifeGamemode.Server.Events
GlobalHelper.DutyAdmins.Remove(player); GlobalHelper.DutyAdmins.Remove(player);
}*/ }*/
if (player.GetUser().IsAdmin(AdminLevel.MAPPING)) if (user.IsAdmin(AdminLevel.MAPPING))
{ {
ChatService.BroadcastAdmin("!{#FFFF00}*** " + player.Name + " hat den Server verlassen", AdminLevel.MAPPING); ChatService.BroadcastAdmin("!{#FFFF00}*** " + player.Name + " hat den Server verlassen", AdminLevel.MAPPING);
} }
@@ -74,8 +81,8 @@ namespace ReallifeGamemode.Server.Events
{ {
Report.Report.listReports.Remove(temp); Report.Report.listReports.Remove(temp);
Player user = PlayerService.GetPlayerByNameOrId(temp.getUser()); Player ticketUser = PlayerService.GetPlayerByNameOrId(temp.getUser());
user.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der Admin hat den Server verlassen"); ticketUser.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der Admin hat den Server verlassen");
break; break;
} }
@@ -124,9 +131,6 @@ namespace ReallifeGamemode.Server.Events
} }
} }
using (var saveUser = new DatabaseContext())
{
var user = player.GetUser(saveUser);
Vector3 pos = player.Position; Vector3 pos = player.Position;
user.PositionX = pos.X; user.PositionX = pos.X;
@@ -137,10 +141,9 @@ namespace ReallifeGamemode.Server.Events
if (user.Wanteds > 0) if (user.Wanteds > 0)
{ {
ChatService.HQMessage("Der Straftäter " + player.GetUser().Name + " ist vom Radar verschwunden"); ChatService.HQMessage("Der Straftäter " + user.Name + " ist vom Radar verschwunden");
} }
}
player.SetData("isLoggedIn", false); player.SetData("isLoggedIn", false);
player.TriggerEvent("CLIENT:DestroyPed", 1); player.TriggerEvent("CLIENT:DestroyPed", 1);
player.TriggerEvent("CLIENT:DestroyPed", 2); player.TriggerEvent("CLIENT:DestroyPed", 2);

View File

@@ -144,6 +144,8 @@ namespace ReallifeGamemode.Server.Events
{ {
Jail.Check_PutBehindBars(user); Jail.Check_PutBehindBars(user);
} }
player.Dimension = 0;
} }
player.TriggerEvent("draw", player.Name, player.Handle.Value); player.TriggerEvent("draw", player.Name, player.Handle.Value);

View File

@@ -31,8 +31,9 @@ namespace ReallifeGamemode.Server.Extensions
/// <returns></returns> /// <returns></returns>
public static User GetUser(this Player client, DatabaseContext context = null) public static User GetUser(this Player client, DatabaseContext context = null)
{ {
context = context ?? new DatabaseContext();
if (!client.IsLoggedIn()) return null; if (!client.IsLoggedIn()) return null;
context = context ?? new DatabaseContext();
return context return context
.Users .Users
.Include(u => u.Faction) .Include(u => u.Faction)