public static bool IsValid(NetPackageChat __instance) { try { if (__instance.Sender.playerName != mainName(__instance) || __instance.Sender.entityId != senderEntityId(__instance)) { ClientInfo cInfo = PersistentOperations.GetClientInfoFromEntityId(senderEntityId(__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 chat message 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 chat message 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 ChatPackage.IsValid: {0}", e.Message)); } return(true); }
public static bool PackageChat_ProcessPackage_Prefix(NetPackageChat __instance, World _world) { try { if (Packages.IsEnabled && __instance.Sender != null) { ClientInfo _cInfo = __instance.Sender; if (_cInfo.entityId != _entityId(__instance)) { Log.Out(string.Format("[SERVERTOOLS] Detected erroneous data NetPackageChat uploaded by steam id {0}, owner id {1}, entity id {2} name {3}. Modifying their entity id to {4}", _cInfo.playerId, _cInfo.ownerId, _cInfo.entityId, _cInfo.playerName, _entityId(__instance))); Packages.Writer(_cInfo.ownerId, _cInfo.playerId, _cInfo.playerName, string.Format("Modifying their entity id to {0}", _entityId(__instance))); Packages.Ban(_cInfo.ownerId, _cInfo.playerId, _cInfo.playerName); return(false); } if (_cInfo.playerName != _mainName(__instance)) { Log.Out(string.Format("[SERVERTOOLS] Detected erroneous data NetPackageChat uploaded by steam id {0}, owner id {1}, entity id {2} name {3}. Modifying their user name to {4}", _cInfo.playerId, _cInfo.ownerId, _cInfo.entityId, _cInfo.playerName, _mainName(__instance))); Packages.Writer(_cInfo.ownerId, _cInfo.playerId, _cInfo.playerName, string.Format("Modifying their user name to {0}", _mainName(__instance))); Packages.Ban(_cInfo.ownerId, _cInfo.playerId, _cInfo.playerName); return(false); } } } catch (Exception e) { Log.Out(string.Format("[SERVERTOOLS] Error in PackagePersistentPlayerState.PackagePersistentPlayerState_ProcessPackage_Prefix: {0}", e.Message)); } return(true); }
public static bool NetPackageChat_ProcessPackage_Prefix(NetPackageChat __instance) { if (PersistentOperations.Net_Package_Detector && __instance.Sender != null) { if (!ChatPackage.IsValid(__instance)) { return(false); } } return(true); }