public static bool IsValid(NetPackageEntityPosAndRot __instance) { try { if (__instance.Sender.entityId != entityId(__instance)) { ClientInfo cInfo = PersistentOperations.GetClientInfoFromEntityId(entityId(__instance)); if (cInfo != null) { GameUtils.KickPlayerForClientInfo(__instance.Sender, new GameUtils.KickPlayerData(GameUtils.EKickReason.Banned, 0, DateTime.Now.AddDays(1095), "Auto detection has banned you for packet manipulation")); using (StreamWriter sw = new StreamWriter(Filepath, true, Encoding.UTF8)) { sw.WriteLine(string.Format("Detected invalid entity position and rotation update by '{0}' '{1}' named '{2}' against '{3}' '{4}' named '{5}'", __instance.Sender.PlatformId.CombinedString, __instance.Sender.CrossplatformId.CombinedString, __instance.Sender.playerName, cInfo.PlatformId.CombinedString, cInfo.CrossplatformId.CombinedString, cInfo.playerName)); sw.WriteLine(); sw.Flush(); sw.Close(); } Log.Out(string.Format("[SERVERTOOLS] Detected invalid entity position and rotation update by '{0}' '{1}' named '{2}' against '{3}' '{4}' named '{5}'. Client has been banned", __instance.Sender.PlatformId.CombinedString, __instance.Sender.CrossplatformId.CombinedString, __instance.Sender.playerName, cInfo.PlatformId.CombinedString, cInfo.CrossplatformId.CombinedString, cInfo.playerName)); return(false); } } } catch (Exception e) { Log.Out(string.Format("[SERVERTOOLS] Error in EntityPosAndRotPackage.IsValid: {0}", e.Message)); } return(true); }
public static bool NetPackageEntityPosAndRot_ProcessPackage_Prefix(NetPackageEntityPosAndRot __instance) { if (PersistentOperations.Net_Package_Detector && __instance.Sender != null) { if (!EntityPosAndRotPackage.IsValid(__instance)) { return(false); } } return(true); }