Advertisement
Guest User

Untitled

a guest
Mar 20th, 2016
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 134.47 KB | None | 0 0
  1. // Reference: Facepunch.ID
  2. // Reference: Facepunch.MeshBatch
  3. // Reference: Google.ProtocolBuffers
  4.  
  5. // Reference: Newtonsoft.Json
  6. using System.Collections.Generic;
  7. using System;
  8. using System.Reflection;
  9. using UnityEngine;
  10. using System.Data;
  11. using Facepunch;
  12. using uLink;
  13. // Reference: Facepunch.Cursor
  14.  
  15. using Oxide.Core;
  16. using Oxide.Core.Plugins;
  17. using RustProto;
  18.  
  19. using Oxide.Core;
  20. using System.Text.RegularExpressions;
  21.  
  22. using Newtonsoft.Json;
  23.  
  24. using Google.ProtocolBuffers;
  25. using Google.ProtocolBuffers.Collections;
  26. using Google.ProtocolBuffers.Descriptors;
  27. using Google.ProtocolBuffers.FieldAccess;
  28. using System.Collections.Generic;
  29. using Oxide.Core.Libraries;
  30. using System.Linq;
  31. using System.Text;
  32. using uLink;
  33. using Facepunch;
  34. using Rust;
  35. using InventoryExtensions;
  36. using Facepunch.Cursor;
  37. using Facepunch.Cursor.Internal;
  38.  
  39. namespace Oxide.Plugins
  40. {
  41. [Info("AdminCompanion - devcheck v3", "copper", "2.1.3")]
  42. class AdminCompanion : RustLegacyPlugin
  43. {
  44. private static Core.Configuration.DynamicConfigFile Ipban;
  45. public bool hasrefreshedplugin;
  46. public static float gg;
  47. string cachedReason;
  48. string cachedName;
  49. public static GameObject Load;
  50. public static int numberofbansdizzy;
  51. public static int reportnum;
  52. public static int numberofbansjacked;
  53. public static int numberofbanssteven;
  54. public static int numberofbansnorecoil;
  55. public static int numberofbansnofalldamage;
  56. public static int numberofcheckevade;
  57. public static int numberofspeedjumpban;
  58. public static bool shouldsendstatisticstoadminonconnect = true;
  59. NetUser cachedUser;
  60. string cachedSteamid;
  61.  
  62. public Type BanType;
  63. public FieldInfo steamid;
  64. public FieldInfo username;
  65. public FieldInfo reason;
  66. public FieldInfo bannedUsers;
  67. static int terrainLayerr;
  68.  
  69. Vector3 VectorUp = new Vector3(0f, 1f, 0f);
  70. Vector3 VectorDown = new Vector3(0f, -0.4f, 0f);
  71. Vector3 VectorDownn = new Vector3(0f, -0.1f, 0f);
  72.  
  73. public static Vector3 Vector3Down = new Vector3(0f,-1f,0f);
  74. public static Vector3 Vector3Down2 = new Vector3(0f,-3f,0f);
  75. public static Vector3 Vector3Up = new Vector3(0f, 1f, 0f);
  76. public static Vector3 UnderPlayerAdjustement = new Vector3(0f, -1.15f, 0f);
  77. public static Vector3 UnderPlayerAdjustement2 = new Vector3(0f, -1.16f, 0f);
  78. public static RustServerManagement management2;
  79. public static Vector3 vectorup2 = new Vector3(0f, 1f, 0f);
  80. int terrainLayer;
  81.  
  82. public static float distanceDown = 10f;
  83. public static RaycastHit cachedRaycasttt;
  84. private static Dictionary<string, ItemDataBlock> displaynameToDataBlock = new Dictionary<string, ItemDataBlock>();
  85. public Dictionary<string, string> hascalled = new Dictionary<string, string>();
  86. public static string laststring;
  87. public static bool finishedcheck1;
  88. public static bool finishedcheck2;
  89. public static bool finishedcheck3;
  90. public static JsonSerializerSettings jsonsettings;
  91. private Core.Configuration.DynamicConfigFile Data;
  92. private static Core.Configuration.DynamicConfigFile Datablock;
  93. private static Core.Configuration.DynamicConfigFile Info;
  94. private static Core.Configuration.DynamicConfigFile DataStore;
  95. public static RaycastHit cachedRaycastttt;
  96.  
  97. Dictionary<string, object> GetPlayerdata(string userid)
  98. {
  99. if (Data[userid] == null)
  100. Data[userid] = new Dictionary<string, object>();
  101. return Data[userid] as Dictionary<string, object>;
  102. }
  103. static Dictionary<string, ItemDataBlock> Getdatablock(string userid)
  104. {
  105. if (Datablock[userid] == null)
  106. Datablock[userid] = new Dictionary<string, ItemDataBlock>();
  107. return Datablock[userid] as Dictionary<string, ItemDataBlock>;
  108. }
  109. Dictionary<string, object> GetPlayeinfo(string userid)
  110. {
  111. if (Info[userid] == null)
  112. Info[userid] = new Dictionary<string, object>();
  113. return Info[userid] as Dictionary<string, object>;
  114. }
  115. static Dictionary<string, object> Getplayerdatastore(string userid)
  116. {
  117. if (DataStore[userid] == null)
  118. DataStore[userid] = new Dictionary<string, object>();
  119. return DataStore[userid] as Dictionary<string, object>;
  120. }
  121.  
  122.  
  123.  
  124. void LoadData() { Data = Interface.GetMod().DataFileSystem.GetDatafile("AIAdmin(pl)"); Info = Interface.GetMod().DataFileSystem.GetDatafile("AdminCompanion(Reports.pl)"); DataStore = Interface.GetMod().DataFileSystem.GetDatafile("AdminCompanion(DataStore(pl))"); Ipban = Interface.GetMod().DataFileSystem.GetDatafile("Blacklist(ip)"); Datablock = Interface.GetMod().DataFileSystem.GetDatafile("AdminCompanion(Datablock(pl))");}
  125. void SaveData() { Interface.GetMod().DataFileSystem.SaveDatafile("AIAdmin(pl)"); Interface.GetMod().DataFileSystem.SaveDatafile("AdminCompanion(DataStore(pl))"); Interface.GetMod().DataFileSystem.SaveDatafile("AdminCompanion(Datablock(pl))");}
  126. void Unload()
  127. {
  128. SaveData();
  129. var objects = GameObject.FindObjectsOfType(typeof(PlayerHandler));
  130. var objects2 = GameObject.FindObjectsOfType(typeof(PlayerHandlerflagcheck));
  131. if (objects != null)
  132. foreach (var gameObj in objects)
  133. {
  134. GameObject.Destroy(gameObj);
  135. }
  136. if (objects2 != null)
  137. foreach (var gameObj2 in objects)
  138. {
  139. GameObject.Destroy(gameObj2);
  140. }
  141. }
  142. public bool timerallowed;
  143.  
  144. public bool ischecking = false;
  145.  
  146. public static bool shouldlogwhoputstuffin = false;
  147. public static bool shoulddoipban = true;
  148. public static bool shouldbepinglienient = true;
  149. public static int pinglimitbeforeignore = 380;
  150. public static int ismovingflag = 6208;
  151. public static bool shouldbanforidle = true;
  152. public static float idletimetillban = 330f;
  153. public static int numberoffakecallslmit = 5;
  154. public static bool shouldchecknorecoil = false;
  155. public static bool shouldcheckjacked = false;
  156. public static bool shouldchecksteven = true;
  157. public static bool shouldcheckdizzy = true;
  158. public static bool shouldcheckjumpspeed = true;
  159. public static bool shouldcheckhackmenu = true;
  160. public static bool shouldchecknofall = true;
  161. public static bool shouldcheckforspeedjump = true;
  162. public static bool shoulduseplayerdatabase = false;
  163. public static bool shouldogwhotakestuffout = true;
  164. public static bool shouldlogfurnace = true;
  165. public static bool shouldbanforitmingjumps = true;
  166. public static string icon = "★";
  167. public static float duration = 10.0f;
  168. public static float numberofvotes = 3.0f;
  169. public static float idletimetillautoseectlanguage = 60f;
  170. public static int numberoftimedjumpdettectionsbeforeban = 5;
  171. public static int numberofpercentagevtoesbeforecheck = 50;
  172. public static int maxammoutnoflanguagerefreshbeforeignore = 3;
  173. public static bool shouldbanifplayerdcduringtest = true;
  174. public static bool shouldresetdetectionwhenplayerdisconnects = true;
  175. public static bool shouldcheckonce = true;
  176. public static bool shouldcheckplayeroncewhenconnect = false;
  177. public static bool shouldcheckplayerwhenfirstconnect = false;
  178. public static bool shouldsendprobablybanevadetoadmin = true;
  179. public static bool shouldkicknoname = true;
  180. public static bool allowlanguagerefresh = true;
  181. public static bool shouldcheckplayerswithpermisions = true;
  182. public static bool shoulduseenglishdictionaryonly = false;
  183. public static bool shouldautoselectlagnuageifplayeridl = true;
  184. public static bool shouldcheckmultinofall = true;
  185. public static bool falldamageenabled = false;
  186. public static bool shouldallowtestresetifdisconnected = true;
  187. public static bool smartcheck = true;
  188. public static int menuscreenflag = 128;
  189. public static int crouchdetetctionsecondflagcheck = 6145;
  190. public static int crouchmovedetectionflagcheck = 6209;
  191. public static bool shouldignore = true;
  192. public static string Email = "enteryouremailisneeded@gmail.com";
  193. void LoadDefaultConfig() { }
  194.  
  195. private void CheckCfg<T>(string Key, ref T var)
  196. {
  197. if (Config[Key] is T)
  198. var = (T)Config[Key];
  199. else
  200. Config[Key] = var;
  201. }
  202. void LoadDefaultMessages()
  203. {
  204. var messages = new Dictionary<string, string>
  205. {
  206. {"Prefix", "AntiCheat"},
  207. {"TestWarning", "[color red]During test only press buttons as directed."},
  208. {"TestWarningAltTab", "[color cyan]Alt+tabbing [color red]or pressing [color cyan]F1 [color red]will result in a ban during the test."},
  209.  
  210. {"TargetVitals", "Your targets vitals are:"}
  211. };
  212. lang.RegisterMessages(messages, this);
  213. }
  214.  
  215. void Init()
  216. {
  217.  
  218.  
  219. CheckCfg<string>("Messages: Icon", ref icon);
  220. CheckCfg<bool>("Messages: should do ping exception", ref shouldbepinglienient);
  221. CheckCfg<bool>("Messages: Should check JackeD", ref shouldcheckjacked);
  222. CheckCfg<bool>("Messages: Should check Dizzy Hack", ref shouldcheckdizzy);
  223. CheckCfg<bool>("Messages: should check Steven Hack", ref shouldchecksteven);
  224. CheckCfg<bool>("Messages: should do ip ban", ref shoulddoipban);
  225. CheckCfg<int>("Messages: Ping Exception", ref pinglimitbeforeignore);
  226. CheckCfg<int>("Messages: crouch Detection State Flag", ref crouchmovedetectionflagcheck);
  227. CheckCfg<int>("Messages: Crouch Detcetion Exploit", ref crouchdetetctionsecondflagcheck);
  228. CheckCfg<int>("Messages: Menu Screen Flag", ref menuscreenflag);
  229. CheckCfg<bool>("Messages: should ignore player if fake language detected", ref shouldignore);
  230. CheckCfg<int>("Messages: number of fake language dettection before ignore", ref numberoffakecallslmit);
  231. CheckCfg<string>("Messages: Enter a valid email to enable the api's full potential", ref Email);
  232. CheckCfg<bool>("Messages: Should smart check(check players whos name's are in the banlist?)", ref smartcheck);
  233. CheckCfg<float>("Messages: Maximum amount of votes needed beforce check", ref numberofvotes);
  234. CheckCfg<float>("Messages: idle time till auto select language", ref idletimetillautoseectlanguage);
  235. CheckCfg<bool>("Messages: should ban for idle ?", ref shouldbanforidle);
  236. CheckCfg<float>("Messages: message duraton", ref duration);
  237. CheckCfg<int>("Messages: number of percentage of votes before check ", ref numberofpercentagevtoesbeforecheck);
  238. CheckCfg<float>("Messages: idle time till ban ", ref idletimetillban);
  239. CheckCfg<int>("Messages: Max amount of language resset before ignore ", ref maxammoutnoflanguagerefreshbeforeignore);
  240. CheckCfg<bool>("Messages: should check for speed jump? ", ref shouldcheckjumpspeed);
  241. CheckCfg<bool>("Messages: should check Players with permision's on conenct? ", ref shouldcheckplayerswithpermisions);
  242. CheckCfg<bool>("Messages: Allow Language refresh? ", ref allowlanguagerefresh);
  243. CheckCfg<bool>("Messages: should kick noname?? ", ref shouldkicknoname);
  244. CheckCfg<bool>("Messages: should send probably ban evade to chat? ", ref shouldsendprobablybanevadetoadmin);
  245. CheckCfg<bool>("Messages: should checkplayer once ? this will check the player one time when he/she connects unless votechecked or force checked ", ref shouldcheckplayeroncewhenconnect);
  246. CheckCfg<bool>("Messages: should checkplayer when first connect? ", ref shouldcheckplayerwhenfirstconnect);
  247. CheckCfg<bool>("Messages: shouldcheck once when voted? ", ref shouldcheckonce);
  248. CheckCfg<bool>("Messages: should reset dettection when playr disconnects? ", ref shouldresetdetectionwhenplayerdisconnects);
  249. CheckCfg<bool>("Messages: should ban if player dc during test? ", ref shouldbanifplayerdcduringtest);
  250. CheckCfg<bool>("Messages: should check for no fall? ", ref shouldchecknofall);
  251. CheckCfg<int>("Messages: number of timed jump dettections before ban? ", ref numberoftimedjumpdettectionsbeforeban);
  252. CheckCfg<bool>("Messages: should check for hack menu? ", ref shouldcheckhackmenu);
  253. CheckCfg<bool>("Messages: shouldcheck for no recoil? ", ref shouldchecknorecoil);
  254. CheckCfg<bool>("Messages: should ban for timing jump's? ", ref shouldbanforitmingjumps);
  255. CheckCfg<bool>("Messages: should use english dictionary only? ", ref shoulduseenglishdictionaryonly);
  256. CheckCfg<bool>("Messages: should auto select english language if player is idle? ", ref shouldautoselectlagnuageifplayeridl);
  257. CheckCfg<bool>("Messages: should send statistic's to admins/mods on connect? ", ref shouldsendstatisticstoadminonconnect);
  258. CheckCfg<bool>("Messages: check multi nofall this is a method to detect stevens so called undetected no fall hack you will have to specify whether your server has nofall enabled or not", ref shouldcheckmultinofall);
  259. CheckCfg<bool>("Messages: do you have falldamage enabled on youur server?", ref falldamageenabled);
  260. CheckCfg<bool>("Messages: should alllow report resset if disconnected fromt the server?", ref shouldallowtestresetifdisconnected);
  261. SaveConfig();
  262. }
  263.  
  264. static Dictionary<string, object> Getipban(string userid)
  265. {
  266. if (Ipban[userid] == null)
  267. Ipban[userid] = new Dictionary<string, object>();
  268. return Ipban[userid] as Dictionary<string, object>;
  269. }
  270. public static void ipban(PlayerHandler player, string reason)
  271. {
  272.  
  273. if(shoulddoipban)
  274. {
  275. var ip = player.playerclient.netUser.networkPlayer.externalIP.ToString();
  276. var name = player.playerclient.userName;
  277. var GetPlayerdata = Getipban("Blacklist(ip)");
  278. if(!GetPlayerdata.ContainsKey(ip))
  279. GetPlayerdata.Add(ip, name + " Reason : " + reason);
  280. }
  281. }
  282. void Loaded()
  283. {
  284. LoadDefaultMessages();
  285. LoadData();
  286. SaveData();
  287. if (!permission.PermissionExists("AdminCompanion.Companion")) permission.RegisterPermission("AdminCompanion.Companion", this);
  288. terrainLayer = LayerMask.GetMask(new string[] { "Terrain" });
  289. terrainLayerr = LayerMask.GetMask(new string[] { "Static" });
  290. management2 = RustServerManagement.Get();
  291. InitializeTable();
  292. BanType = typeof(BanList).GetNestedType("Ban", BindingFlags.Instance | BindingFlags.NonPublic);
  293. steamid = BanType.GetField("steamid");
  294. username = BanType.GetField("username");
  295. reason = BanType.GetField("reason");
  296.  
  297. bannedUsers = typeof(BanList).GetField("bannedUsers", (BindingFlags.Static | BindingFlags.NonPublic));
  298. }
  299. bool hasAccess(NetUser netuser)
  300. {
  301. if (netuser.CanAdmin())
  302. return true;
  303.  
  304. return permission.UserHasPermission(netuser.playerClient.userID.ToString(), "AdminCompanion.Companion");
  305. }
  306. public static void refreshrecoiltest(PlayerHandler player)
  307. {
  308. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "input.bind Fire c c");
  309. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "input.mousespeed 0");
  310. return;
  311. }
  312. [ChatCommand("aisafezone")]
  313. void cmdChatsavezone(NetUser netuser, string command, string[] args)
  314. {
  315. if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AdminCompanion", "you are not allowed to use this command"); return; }
  316. var loc = Getplayerdatastore("SafeZone");
  317. if(loc.ContainsKey("x"))
  318. {
  319. DataStore["SafeZone"] = null;
  320. rust.SendChatMessage(netuser, "AdminCompanion", "you have removed the current TestZone");
  321. return;
  322. }
  323. loc.Add("x", netuser.playerClient.lastKnownPosition.x);
  324. loc.Add("y", netuser.playerClient.lastKnownPosition.y);
  325. loc.Add("z", netuser.playerClient.lastKnownPosition.z);
  326. rust.SendChatMessage(netuser, "AdminCompanion", "you have added your current location as a TestZone");
  327. }
  328. [ChatCommand("airefresh")]
  329. void cmdChatrefreshalllanguage(NetUser netuser, string command, string[] args)
  330. {
  331. if(!allowlanguagerefresh)
  332. {
  333. rust.SendChatMessage(netuser, "AdminCompanion", "This command is disabled");
  334. return;
  335. }
  336. var datastore = GetPlayeinfo(netuser.playerClient.userID.ToString());
  337. if(!datastore.ContainsKey("RefreshCount"))
  338. {
  339. datastore.Add("RefreshCount", 1);
  340. }
  341. var currentdatastore = Convert.ToSingle(datastore["RefreshCount"]);
  342. if(currentdatastore >= maxammoutnoflanguagerefreshbeforeignore)
  343. {
  344. rust.SendChatMessage(netuser, "AdminCompanion", "you cannot use this command as you have exceeded the amount of refreshes that is allowed");
  345. return;
  346. }
  347. PlayerHandler phandler = netuser.playerClient.GetComponent<PlayerHandler>();
  348. if(phandler != null)
  349. {
  350. rust.SendChatMessage(netuser, "AdminCompanion", "you cannot Refresh your language while being tested");
  351. return;
  352. }
  353. currentdatastore++;
  354. var datastore2 = Getplayerdatastore(netuser.playerClient.userID.ToString());
  355. if(datastore2.ContainsKey("Language"))
  356. {
  357. datastore2.Remove("Language");
  358. rust.SendChatMessage(netuser, "AdminCompanion", "your previously selected language has been removed");
  359. return;
  360. }
  361. rust.SendChatMessage(netuser, "AdminCompanion", "your previously selected language has already been removed");
  362. return;
  363. }
  364. [ChatCommand("aipromote")]
  365. void cmdChatpromotepl(NetUser netuser, string command, string[] args)
  366. {
  367. if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AdminCompanion", "you are not allowed to use this command"); return; }
  368. if (args.Length != 1)
  369. {
  370. rust.SendChatMessage(netuser, "AdminCompanion", "wrong syntax: /airpromote 'playername < must be precise");
  371. return;
  372. }
  373. var hasacess = GetPlayerdata("Flags(pl)");
  374. NetUser targetuser = rust.FindPlayer(args[0]);
  375. if(hasacess.ContainsKey(targetuser.userID.ToString()))
  376. {
  377. rust.SendChatMessage(netuser, "AdminCompanion", targetuser.displayName + " has already been added to the AdminCompanion Associate's list");
  378. return;
  379. }
  380. hasacess.Add(targetuser.userID.ToString(), true);
  381. return;
  382. }
  383. [ChatCommand("aidemote")]
  384. void cmdChatdemotepl(NetUser netuser, string command, string[] args)
  385. {
  386. if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AdminCompanion", "you are not allowed to use this command"); return; }
  387. if (args.Length != 1)
  388. {
  389. rust.SendChatMessage(netuser, "AdminCompanion", "wrong syntax: /aidemote 'playername < must be precise");
  390. return;
  391. }
  392. var hasacess = GetPlayerdata("Flags(pl)");
  393. NetUser targetuser = rust.FindPlayer(args[0]);
  394. if(!hasacess.ContainsKey(targetuser.userID.ToString()))
  395. {
  396. rust.SendChatMessage(netuser, "AdminCompanion", targetuser.displayName + " has already been Removed to the Companion list");
  397. return;
  398. }
  399. rust.SendChatMessage(netuser, "AdminCompanion", targetuser.displayName + " has been Removed from the Companion list");
  400. hasacess.Remove(targetuser.userID.ToString());
  401. return;
  402. }
  403. [ChatCommand("aiforceremovelang")]
  404. void cmdChatforcermeovedictionary(NetUser netuser, string command, string[] args)
  405. {
  406. if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AdminCompanion", "you are not allowed to use this command"); return; }
  407. if (args.Length != 1)
  408. {
  409. rust.SendChatMessage(netuser, "AdminCompanion", "wrong syntax: /aiforceremovelang 'language prefix < must be precise");
  410. return;
  411. }
  412. if(DataStore[args[0].ToString()] == null)
  413. {
  414. rust.SendChatMessage(netuser, "AdminCompanion", "The dictionary has already been removed for " + args[0].ToString());
  415. return;
  416. }
  417. DataStore[args[0].ToString()] = null;
  418. SaveData();
  419. rust.SendChatMessage(netuser, "AdminCompanion", "you have removed the language dictionary for " + args[0].ToString());
  420. return;
  421. }
  422. [ChatCommand("reportrules")]
  423. void cmdReportRules(NetUser netuser, string command, string[] args)
  424. {
  425. rust.SendChatMessage(netuser, "AntiCheat", "[color orange]Abuse of this system will result in an irreversible ban.");
  426. rust.SendChatMessage(netuser, "AntiCheat", "- Keep in mind that there are always going to be people better than you.");
  427. rust.SendChatMessage(netuser, "AntiCheat", "- If you feel someone is hacking, /report them and after their test, if they");
  428. rust.SendChatMessage(netuser, "AntiCheat", "pass move on. If your still suspicious message an admin and we will look into it.");
  429. rust.SendChatMessage(netuser, "AntiCheat", "- Griefing using this plugin [color red]WILL [color white]get you [color red]banned[color white]. There are two records running");
  430. rust.SendChatMessage(netuser, "AntiCheat", "first how many times you've reported people, and second how many times you've");
  431. rust.SendChatMessage(netuser, "AntiCheat", "reported a particular individual.");
  432. }
  433. public bool isvalidtest(string x)
  434. {
  435. if(x.ToString() == "stevenmenu" || x.ToString() == "dizzy" || x.ToString() == "a3mon" || x.ToString() == "drop" || x.ToString() == "jacked")
  436. return true;
  437. return false;
  438.  
  439.  
  440. }
  441. [ChatCommand("run")]
  442. void cmdRun(NetUser netuser, string command, string[] args)
  443. {
  444. if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AntiCheat", "you are not allowed to use this command"); return; }
  445. else if (args.Length != 2)
  446. {
  447. rust.SendChatMessage(netuser, "AntiCheat", "Incorrect syntax: Use /run 'user' 'test'");
  448.  
  449. }
  450. else
  451. {
  452. if(!isvalidtest(args[1].ToString()))
  453. return;
  454. NetUser targetuser = rust.FindPlayer(args[0]);
  455. string userid = targetuser.playerClient.userID.ToString();
  456. string net = targetuser.userID.ToString();
  457. if (targetuser != null)
  458. {
  459. PlayerHandler player = targetuser.playerClient.GetComponent<PlayerHandler>();
  460. if (player != null)
  461. {
  462. rust.SendChatMessage(netuser, "AntiCheat", "already running a test on color yellow]" + targetuser.displayName);
  463. return;
  464. }
  465. player = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>();
  466.  
  467. var character = targetuser.playerClient.rootControllable.GetComponent<Character>();
  468. if (args[1] == "stevenmenu")
  469. {
  470. player.finisheddizzycheck = true;
  471. player.finishedjackedcheck = true;
  472. player.hascompletednofallcheck = true;
  473. player.passedjumptest = true;
  474. player.passednorecoiltest = true;
  475. player.StartCheck();
  476. rust.SendChatMessage(netuser, "AntiCheat", "Running test 'Steven Menu' on [color yellow]" + targetuser.displayName);
  477. }
  478. else if (args[1] == "a3mon")
  479. {
  480. player.finishedstevencheck = true;
  481. player.finishedjackedcheck = true;
  482. player.hascompletednofallcheck = true;
  483. player.passedjumptest = true;
  484. player.passednorecoiltest = true;
  485. player.StartCheck();
  486. rust.SendChatMessage(netuser, "AntiCheat", "Running test 'A3mon' on [color yellow]" + targetuser.displayName);
  487. }
  488. else if (args[1] == "jacked")
  489. {
  490. player.finishedstevencheck = true;
  491. player.finisheddizzycheck = true;
  492. player.hascompletednofallcheck = true;
  493. player.passedjumptest = true;
  494. player.passednorecoiltest = true;
  495. player.StartCheck();
  496. rust.SendChatMessage(netuser, "AntiCheat", "Running test 'A3mon' on [color yellow]" + targetuser.displayName);
  497. }
  498. else if (args[1] == "dizzy")
  499. {
  500. rust.SendChatMessage(netuser, "AntiCheat", "Running test 'Dizzy Client' on [color yellow]" + targetuser.displayName);
  501. }
  502. else if (args[1] == "drop")
  503. {
  504. player.finishedstevencheck = true;
  505. player.finishedjackedcheck = true;
  506. player.finisheddizzycheck = true;
  507. player.passedjumptest = true;
  508. player.passednorecoiltest = true;
  509. player.StartCheck();
  510. rust.SendChatMessage(netuser, "AntiCheat", "Running test 'Drop Test' on [color yellow]" + targetuser.displayName);
  511. }
  512. else
  513. {
  514. rust.SendChatMessage(netuser, "AntiCheat", "The test [color orange]" + args[1] + " [color white]does not exist");
  515. }
  516. }
  517. }
  518. }
  519. [ChatCommand("system")]
  520. void cmdSystem(NetUser netuser, string command, string[] args)
  521. {
  522. PlayerHandler player = netuser.playerClient.GetComponent<PlayerHandler>();
  523. if (player == null)
  524. {
  525. SendReply(netuser, "You are not currently being tested");
  526. }
  527. else if (args.Length != 1)
  528. {
  529. rust.SendChatMessage(netuser, "AntiCheat", "Wrong syntax: Use /system 'pc' or /system 'mac'");
  530. }
  531. else if (args[0].ToString().ToLower() == "pc")
  532. {
  533. player.system = "pc";
  534. rust.SendChatMessage(netuser, "AntiCheat", "You have chosen your system as: [color yellow]" + args[0]);
  535. }
  536. else if (args[0].ToString().ToLower() == "mac")
  537. {
  538. player.system = "mac";
  539. rust.SendChatMessage(netuser, "AntiCheat", "You have chosen your system as: [color yellow]" + args[0]);
  540. }
  541. }
  542.  
  543. [ChatCommand("report")]
  544. void cmdChatProdwholootedd(NetUser netuser, string command, string[] args)
  545. {
  546. if (args.Length == 0 )
  547. {
  548. rust.SendChatMessage(netuser, "AntiCheat", "wrong syntax: /report 'playername < must be precise");
  549. return;
  550. }
  551.  
  552. cachedName = string.Empty;
  553. cachedReason = string.Empty;
  554. if (args.Length > 1)
  555. {
  556. if (cachedName == string.Empty)
  557. {
  558. cachedName = args[1];
  559. if (args.Length > 2)
  560. {
  561. cachedReason = args[2];
  562. }
  563. else
  564. {
  565. cachedReason = args[1];
  566. }
  567. }
  568. }
  569. cachedReason += "(" + netuser.displayName + ")";
  570. NetUser targetuser = rust.FindPlayer(args[0]);
  571. if(targetuser == null)
  572. {
  573. rust.SendChatMessage(netuser, "AdminCompanion", "there is no players found with that name");
  574. return;
  575. }
  576. var haschecked = Getplayerdatastore("AdminCompanion(haschecked)");
  577. if(shouldcheckonce)
  578. {
  579. if(haschecked.ContainsKey(targetuser.playerClient.userID.ToString()))
  580. {
  581. rust.SendChatMessage(netuser, "AdminCompanion", "I am sorry I was told not to check players twice");
  582. return;
  583. }
  584. }
  585. var newdata = GetPlayeinfo(targetuser.playerClient.userID.ToString());
  586. var newdata2 = GetPlayeinfo("Reporteddata");
  587. if(newdata.ContainsKey(netuser.playerClient.userID.ToString()))
  588. {
  589. var newdatacount2 = Convert.ToSingle(newdata["Reportspl"]);
  590. rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
  591. rust.SendChatMessage(netuser, "AntiCheat", "[color yellow]" + targetuser.displayName + " [color white] he needs a total of : [color orange]" + newdatacount2 + "/" + numberofvotes + " [color white]reports.");
  592. rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
  593. rust.SendChatMessage(netuser, "AntiCheat", "You have already reported [color yellow]" + targetuser.displayName + "[color white]!");
  594. rust.SendChatMessage(netuser, "AntiCheat", "[color red]Intentional abuse of this plugin will result in a ban.");
  595. rust.SendChatMessage(netuser, "AntiCheat", "Use /reportrules if you have questions!");
  596. return;
  597. rust.SendChatMessage(netuser, "AdminCompanion", "You have already voted to check " + targetuser.playerClient.userName);
  598. return;
  599.  
  600. }
  601.  
  602. if(!newdata.ContainsKey("Reportspl"))
  603. {
  604. reportnum++;
  605. newdata.Add("Reportspl", 1f);
  606. timer.Once((float)300 , () => newdata.Remove("Reportspl".ToString()));
  607. if(!newdata.ContainsKey(netuser.playerClient.userID.ToString()))
  608. {
  609. timer.Once((float)300 , () => newdata.Remove(netuser.playerClient.userID.ToString()));
  610. newdata.Add(netuser.playerClient.userID.ToString(), cachedReason);
  611. }
  612. var text = Convert.ToSingle(newdata["Reportspl"]);
  613. if(text >= numberofvotes)
  614. {
  615. AntiCheatBroadcastplayerr(targetuser.displayName + " is now being checked for hacks");
  616. targetuser.playerClient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
  617. PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
  618. if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
  619. timer.Once(0.1f, () => phandler.StartCheck());
  620. rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " is now being checked for hacks");
  621. rust.Notice(targetuser, targetuser.displayName + " You are now being tested for hacks do as you are told");
  622. rust.RunClientCommand(targetuser, "config.save");
  623. rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
  624. rust.RunClientCommand(targetuser, "input.bind Up F2 F2");
  625. rust.RunClientCommand(targetuser, "input.bind Down F2 F2");
  626. rust.RunClientCommand(targetuser, "input.bind Left " + "t" + " " + "t");
  627. rust.RunClientCommand(targetuser, "input.bind Up " + "t" + " " + "t");
  628. rust.RunClientCommand(targetuser, "input.bind Duck " + "t" + " " + "t");
  629. rust.SendChatMessage(netuser, "AntiCheat", "this player will be checked for hacks shortly");
  630. rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " will be checked shortley");
  631. haschecked.Add(targetuser.playerClient.userID.ToString(), targetuser.displayName);
  632. if(!newdata.ContainsKey("numberoftimeschecked"))
  633. {
  634. newdata.Add("numberoftimeschecked", 1);
  635. }
  636. if(!newdata.ContainsKey(netuser.playerClient.userID.ToString()))
  637. {
  638. timer.Once((float)300 , () => newdata.Remove(netuser.playerClient.userID.ToString()));
  639. newdata.Add(netuser.playerClient.userID.ToString(), cachedReason);
  640.  
  641. }
  642. var datecheckadd = Convert.ToSingle(newdata["numberoftimeschecked"]);
  643. datecheckadd++;
  644. }
  645. rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
  646. rust.SendChatMessage(netuser, "AntiCheat", "[color yellow]" + targetuser.displayName + " [color white] he needs a total of : [color orange]" + 1 + "/" + numberofvotes + " [color white]reports.");
  647. rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
  648. rust.Notice(netuser, "Successfully reported player: " + targetuser.displayName + " Email any video proof to Getdrabbed@gmail.com");
  649. rust.SendChatMessage(netuser, "AntiCheat", "[color green]Successfully [color white]reported player: [color yellow]" + targetuser.displayName + ". [color white]Email any video proof to Getdrabbed@gmail.com");
  650. return;
  651. var tallyy2 = PlayerClient.All.Count;
  652. var newdatacount2 = Convert.ToSingle(newdata["Reportspl"]);
  653. var enhanced2 = (tallyy2/newdatacount2 * 100);
  654. var percentageleftt = (50 - enhanced2);
  655.  
  656. if(percentageleftt <= 0)
  657. {
  658. targetuser.playerClient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
  659. PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
  660. if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
  661. timer.Once(0.1f, () => phandler.StartCheck());
  662. rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " [color orange]is now being tested");
  663. rust.RunClientCommand(targetuser, "config.save");
  664. rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
  665. rust.RunClientCommand(targetuser, "input.bind Up F2 F2");
  666.  
  667. rust.RunClientCommand(targetuser, "input.bind Down F2 F2");
  668. rust.RunClientCommand(targetuser, "input.bind Left " + "t" + " " + "t");
  669. rust.RunClientCommand(targetuser, "input.bind Up " + "t" + " " + "t");
  670. rust.RunClientCommand(targetuser, "input.bind Duck " + "t" + " " + "t");
  671. rust.SendChatMessage(netuser, "AntiCheat", "this player will be checked for hacks shortly");
  672. rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " will be checked shortley");
  673. haschecked.Add(targetuser.playerClient.userID.ToString(), targetuser.displayName);
  674. if(!newdata.ContainsKey("numberoftimeschecked"))
  675. {
  676. newdata.Add("numberoftimeschecked", 1);
  677. return;
  678. }
  679. if(!newdata2.ContainsKey(netuser.playerClient.userID.ToString()))
  680. {
  681. newdata2.Add(netuser.playerClient.userID.ToString(), cachedReason);
  682.  
  683. }
  684. var datecheckadd = Convert.ToSingle(newdata["numberoftimeschecked"]);
  685. datecheckadd++;
  686. return;
  687. }
  688. rust.SendChatMessage(netuser, "AntiCheat", "you have voted to check " + targetuser.displayName + " and to check he needs a total of " + percentageleftt.ToString() + "% more votes");
  689. return;
  690. }
  691. if(newdata.ContainsKey(netuser.playerClient.userID.ToString()))
  692. {
  693. rust.SendChatMessage(netuser, "AntiCheat", "You have already voted to check " + targetuser.playerClient.userName);
  694. return;
  695. }
  696. if(!newdata.ContainsKey(netuser.playerClient.userID.ToString()))
  697. {
  698. newdata.Add(netuser.playerClient.userID.ToString(), cachedReason);
  699. timer.Once((float)300 , () => newdata.Remove(netuser.playerClient.userID.ToString()));
  700. }
  701. var newdatacount = Convert.ToSingle(newdata["Reportspl"]);
  702. newdata.Remove("Reportspl");
  703. var update = (newdatacount + 1f);
  704. newdata.Add("Reportspl", update);
  705. if(update >= numberofvotes)
  706. {
  707. AntiCheatBroadcastplayerr(targetuser.displayName + " [color orange]is now being tested");
  708. rust.Notice(targetuser, targetuser.displayName + " You are now being tested for hacks do as you are told");
  709. PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
  710. if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
  711. timer.Once(0.1f, () => phandler.StartCheck());
  712. rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " [color orange]is now being tested");
  713. rust.RunClientCommand(targetuser, "config.save");
  714. rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
  715. rust.RunClientCommand(targetuser, "input.bind Up F2 F2");
  716. rust.SendChatMessage(netuser, "AntiCheat", "this player will be checked for hacks shortly");
  717. rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " will be checked shortley");
  718. haschecked.Add(targetuser.playerClient.userID.ToString(), targetuser.displayName);
  719. }
  720. reportnum++;
  721. rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
  722. rust.SendChatMessage(netuser, "AntiCheat", "[color yellow]" + targetuser.displayName + " [color white] he needs a total of : [color orange]" + update + "/" + numberofvotes + " [color white]reports.");
  723. rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
  724. rust.Notice(netuser, "Successfully reported player: " + targetuser.displayName + " Email any video proof to Getdrabbed@gmail.com");
  725. rust.SendChatMessage(netuser, "AntiCheat", "[color green]Successfully [color white]reported player: [color yellow]" + targetuser.displayName + ". [color white]Email any video proof to Getdrabbed@gmail.com");
  726. return;
  727.  
  728. var tally = update;
  729. var tally2 = PlayerClient.All.Count;
  730. var enhanced = (tally/tally2 * 100);
  731. var percentageleft = (50 - enhanced);
  732. if(percentageleft <= 0)
  733. {
  734. PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
  735. if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
  736. timer.Once(0.1f, () => phandler.StartCheck());
  737. rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " [color orange]is now being tested");
  738. rust.RunClientCommand(targetuser, "config.save");
  739. rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
  740. rust.RunClientCommand(targetuser, "input.bind Up F2 F2");
  741. rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " will be checked shortley");
  742. return;
  743. }
  744. if(newdata.ContainsKey(netuser.playerClient.userID.ToString()))
  745. {
  746. rust.SendChatMessage(netuser, "AntiCheat", "you have already voted to check " + targetuser.displayName + " and to check he needs a total of " + percentageleft.ToString() + "% more votes");
  747. return;
  748. }
  749.  
  750. if(!newdata2.ContainsKey(netuser.playerClient.userID.ToString()))
  751. {
  752. newdata2.Add(netuser.playerClient.userID.ToString(), cachedReason);
  753.  
  754. }
  755. gg++;
  756. newdata.Remove("Reportspl");
  757. newdata.Add("Reportspl", update);
  758. newdata.Add(netuser.playerClient.userID.ToString(), cachedReason);
  759. if(enhanced <= numberofpercentagevtoesbeforecheck)
  760. rust.SendChatMessage(netuser, "AntiCheat", "you have voted to check " + targetuser.displayName + "there is a total of " + enhanced.ToString() + "% who voted needs " + percentageleft.ToString() + "%");
  761. if(enhanced >= numberofpercentagevtoesbeforecheck)
  762. {
  763. PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
  764. if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
  765. timer.Once(0.1f, () => phandler.StartCheck());
  766. rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " [color orange]is now being tested");
  767. rust.RunClientCommand(targetuser, "config.save");
  768. rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
  769. rust.RunClientCommand(targetuser, "input.bind Up F2 F2");
  770. rust.SendChatMessage(netuser, "AntiCheat", "this player will be checked for hacks shortly");
  771. return;
  772. }
  773. rust.SendChatMessage(netuser, "AntiCheat", "there is no players found with that name");
  774. return;
  775. }
  776. [ChatCommand("aireports")]
  777. void cmdChatviewreports(NetUser netuser, string command, string[] args)
  778. {
  779. if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AntiCheat", "you are not allowed to use this command"); return; }
  780. var totalnumberofbans = (numberofbansdizzy + numberofbansjacked + numberofbanssteven + numberofcheckevade + numberofbansnorecoil + numberofbansnofalldamage);
  781. rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) Today I have Banned " + numberofbansdizzy + " Dizzy/A3mon Users " + numberofbansjacked + " JackeD users " + numberofbanssteven + " Steven Hack Users ");
  782. rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) " + numberofbansnofalldamage + " Number of nofall damage users " + numberofbansnorecoil + " No Recoil Users " + numberofcheckevade + " number of Check evades");
  783. rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) " + numberofspeedjumpban + " Number of speed jump ban Total number of bans " + totalnumberofbans + " Reports " + reportnum);
  784. }
  785. [ChatCommand("aivr")]
  786. void cmdChatGetdata(NetUser netuser, string command, string[] args)
  787. {
  788. if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AntiCheat", "you are not allowed to use this command"); return; }
  789. int count = 0;
  790. int bl = 1;
  791. if (args.Length > 0) int.TryParse(args[0], out bl);
  792. var newcount = (bl + 20);
  793. foreach (KeyValuePair<string, object> pair in Info)
  794. {
  795.  
  796. count++;
  797. if(count < bl)
  798. continue;
  799. int count3 = count;
  800. if(count >= newcount)
  801. break;
  802. if(count >= newcount)
  803. return;
  804. friedchicken(netuser, pair.Key.ToString(), bl);
  805. }
  806. }
  807. public void friedchicken(NetUser netuser, string x , int bl)
  808. {
  809. int count = 0;
  810. int newcount = (bl + 20);
  811. var serp = Getplayerdatastore(x);
  812. foreach (KeyValuePair<string, object> pair in serp)
  813. {
  814.  
  815. count++;
  816. int count3 = count;
  817. if(count >= newcount)
  818. break;
  819. if(count >= newcount)
  820. return;
  821. rust.SendChatMessage(netuser, "AdminCompanion", "Value " + pair.Value.ToString() + " Key " + pair.Key.ToString());
  822. }
  823. }
  824. [ChatCommand("aibotendcheck")]
  825. void cmdChatendcheck(NetUser netuser, string command, string[] args)
  826. {
  827. if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AdminCompanion", "you are not allowed to use this command"); return; }
  828. if (args.Length != 1)
  829. {
  830. rust.SendChatMessage(netuser, "AdminCompanion", "wrong syntax: /aibotcheckpl 'playername < must be precise");
  831. return;
  832. }
  833. NetUser targetuser = rust.FindPlayer(args[0]);
  834. if(targetuser == null)
  835. {
  836. rust.SendChatMessage(netuser, "AdminCompanion", "there is no players found with that name");
  837. return;
  838. }
  839. PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
  840. if (phandler != null)
  841. {
  842. if(phandler.playerclient.rootControllable != null)
  843. phandler.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(false);
  844. EndDetection(phandler);
  845. rust.SendChatMessage(netuser, "AntiCheat", "The test has been ended on " + targetuser.displayName);
  846. return;
  847. }
  848. rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " is not currently being tested");
  849. }
  850. [ChatCommand("aiflagcheck")]
  851. void cmdChatgetflagcheck(NetUser netuser, string command, string[] args)
  852. {
  853. if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AntiCheat", "you are not allowed to use this command"); return; }
  854. PlayerHandlerflagcheck phandler = netuser.playerClient.GetComponent<PlayerHandlerflagcheck>();
  855. if (phandler == null) { phandler = netuser.playerClient.gameObject.AddComponent<PlayerHandlerflagcheck>(); rust.SendChatMessage(netuser, "AntiCheat", "Your flags are now being checked"); phandler.StartCheck(); return;}
  856. Endflagcheck(phandler);
  857. rust.SendChatMessage(netuser, "AntiCheat", "Your flags are no longer being checked");
  858. return;
  859.  
  860. }
  861. [ChatCommand("aibotcheckpl")]
  862. void cmdChatProdwholooted(NetUser netuser, string command, string[] args)
  863. {
  864. if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AntiCheat", "you are not allowed to use this command"); return; }
  865. if (args.Length != 1)
  866. {
  867. rust.SendChatMessage(netuser, "AntiCheat", "wrong syntax: /aibotcheckpl 'playername < must be precise");
  868. return;
  869. }
  870. NetUser targetuser = rust.FindPlayer(args[0]);
  871. if(targetuser == null)
  872. {
  873. rust.SendChatMessage(netuser, "AntiCheat", "there is no players found with that name");
  874. return;
  875. }
  876. AntiCheatBroadcastplayerr(targetuser.displayName + " is now being checked for hacks");
  877. rust.Notice(targetuser, targetuser.displayName + " You are now biegn tested for hacks do as you are told");
  878. targetuser.playerClient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
  879. PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
  880. if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
  881. timer.Once(0.1f, () => phandler.StartCheck());
  882. rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " is now being checked for hacks");
  883. rust.RunClientCommand(targetuser, "config.save");
  884. rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
  885. rust.RunClientCommand(targetuser, "input.bind Down F2 F2");
  886. rust.RunClientCommand(targetuser, "input.bind Left " + "t" + " " + "t");
  887. rust.RunClientCommand(targetuser, "input.bind Up " + "t" + " " + "t");
  888. rust.RunClientCommand(targetuser, "input.bind Duck " + "t" + " " + "t");
  889.  
  890.  
  891. }
  892. public bool namehasbeenbannedalready(string name)
  893. {
  894. var bannedusers = bannedUsers.GetValue(null);
  895. MethodInfo Enumerator = bannedusers.GetType().GetMethod("GetEnumerator");
  896. var myEnum = Enumerator.Invoke(bannedusers, new object[0]);
  897. MethodInfo MoveNext = myEnum.GetType().GetMethod("MoveNext");
  898. MethodInfo GetCurrent = myEnum.GetType().GetMethod("get_Current");
  899. string unbantarget = string.Empty;
  900. string unbanname = string.Empty;
  901. while ((bool)MoveNext.Invoke(myEnum, new object[0]))
  902. {
  903. var bannedUser = GetCurrent.Invoke(myEnum, new object[0]);
  904. if (name == steamid.GetValue(bannedUser).ToString() || name == username.GetValue(bannedUser).ToString())
  905. {
  906. unbantarget = steamid.GetValue(bannedUser).ToString();
  907. unbanname = username.GetValue(bannedUser).ToString();
  908. return true;
  909. }
  910. }
  911. return false;
  912. }
  913. void forceenddettection(NetUser netuser)
  914. {
  915.  
  916. }
  917. void OnPlayerConnected(NetUser netuser)
  918. {
  919. if(shouldsendstatisticstoadminonconnect)
  920. {
  921. if (hasAccess(netuser))
  922. {
  923. var totalnumberofbans = (numberofbansdizzy + numberofbansjacked + numberofbanssteven + numberofcheckevade + numberofbansnorecoil + numberofbansnofalldamage);
  924. rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) Today I have Banned " + numberofbansdizzy + " Dizzy/A3mon Users " + numberofbansjacked + " JackeD users " + numberofbanssteven + " Steven Hack Users ");
  925. rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) " + numberofbansnofalldamage + " Number of nofall damage users " + numberofbansnorecoil + " No Recoil Users " + numberofcheckevade + " number of Check evades");
  926. rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) " + numberofspeedjumpban + " Number of speed jump ban Total number of bans " + totalnumberofbans + " Reports " + reportnum);
  927. if(!shouldcheckplayerswithpermisions)
  928. return;
  929. }
  930. }
  931. if(shouldsendprobablybanevadetoadmin)
  932. {
  933. if(shouldkicknoname)
  934. {
  935. if(netuser.displayName.ToString() == "" || netuser.displayName.ToString() == " ")
  936. {
  937. netuser.Kick(NetError.Facepunch_Kick_RCON, true);
  938. return;
  939. }
  940. if(netuser.displayName == "DerpTeamNoob" || netuser.displayName == "LumaEmu") {}
  941. else
  942. if(namehasbeenbannedalready(netuser.displayName.ToString()))
  943. {
  944. if(smartcheck){
  945. var hascheckeddd = GetPlayerdata("smartchecked(log.pl)");
  946. var hascheckedd = GetPlayerdata("smartchecked(pl)");
  947. if(!hascheckeddd.ContainsKey(netuser.playerClient.userID.ToString()))
  948. if(!hascheckedd.ContainsKey(netuser.playerClient.userID.ToString()))
  949. {
  950. hascheckedd.Add(netuser.playerClient.userID.ToString(), true);
  951. if(!hascheckeddd.ContainsKey(netuser.playerClient.userID.ToString()))
  952. AdminCompanionpublicbroadcast("The Name " + netuser.displayName + " has been banned already i will test him when he log's in");
  953. }
  954. }
  955. if(!smartcheck)
  956. AdminCompanionpublicbroadcast("The Name " + netuser.displayName + " has been banned already but is using a different account judge by your self");
  957. }
  958. }
  959. }
  960. if(!shouldcheckplayerwhenfirstconnect)
  961. return;
  962. var firstpass = GetPlayerdata("firstpass");
  963. if(!firstpass.ContainsKey(netuser.playerClient.userID.ToString()))
  964. firstpass.Add(netuser.playerClient.userID.ToString(), true);
  965. }
  966. void helpercheck(PlayerClient player)
  967. {
  968. Debug.Log(player.controllable.npcName);
  969. }
  970. void OnPlayerSpawn(PlayerClient player, bool useCamp, RustProto.Avatar avatar)
  971. {
  972. if(smartcheck)
  973. {
  974. var hascheckedd = GetPlayerdata("smartchecked(pl)");
  975. var hascheckeddd = GetPlayerdata("smartchecked(log.pl)");
  976. if(!hascheckeddd.ContainsKey(player.userID.ToString()))
  977. if(hascheckedd.ContainsKey(player.userID.ToString()))
  978. {
  979.  
  980. PlayerHandler phandler = player.GetComponent<PlayerHandler>();
  981. if (phandler == null) { phandler = player.gameObject.AddComponent<PlayerHandler>(); player.rootControllable.rootCharacter.takeDamage.SetGodMode(true); }
  982. timer.Once(0.1f, () => phandler.StartCheck());
  983. if(!hascheckeddd.ContainsKey(player.userID.ToString()))
  984. hascheckeddd.Add(player.userID.ToString(), true);
  985. return;
  986. }
  987. }
  988. if(!shouldcheckplayeroncewhenconnect)
  989. return;
  990. var haschecked = GetPlayerdata("hasscheckedAuto(pl)");
  991. if(!haschecked.ContainsKey(player.userID.ToString()))
  992. if(shouldcheckplayeroncewhenconnect)
  993. {
  994. PlayerHandler phandler = player.GetComponent<PlayerHandler>();
  995. if (phandler == null) { phandler = player.gameObject.AddComponent<PlayerHandler>(); }
  996. timer.Once(0.1f, () => phandler.StartCheck());
  997.  
  998. if(!haschecked.ContainsKey(player.userID.ToString()))
  999. haschecked.Add(player.userID.ToString(), true);
  1000. return;
  1001. }
  1002. var firstpass = GetPlayerdata("firstpass");
  1003. if(firstpass.ContainsKey(player.userID.ToString()))
  1004. if(!shouldcheckplayeroncewhenconnect)
  1005. if(firstpass.ContainsKey(player.userID.ToString()))
  1006. {
  1007. PlayerHandler phandler = player.GetComponent<PlayerHandler>();
  1008. if (phandler == null) { phandler = player.gameObject.AddComponent<PlayerHandler>(); }
  1009. timer.Once(0.1f, () => phandler.StartCheck());
  1010. firstpass.Remove(player.userID.ToString());
  1011. return;
  1012. }
  1013. return;
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019. }
  1020. void AdminCompanionpublicbroadcast(string message)
  1021. {
  1022. var hasacess = GetPlayerdata("Flags(pl)");
  1023. foreach (PlayerClient player in PlayerClient.All)
  1024. {
  1025. if (player.netUser.CanAdmin() || hasacess.ContainsKey(player.userID.ToString()))
  1026. ConsoleNetworker.SendClientCommand(player.netPlayer, "chat.add AntiCheat \"" + message + "\"");
  1027. }
  1028. }
  1029.  
  1030. static void AntiCheatBroadcastplayer(string message)
  1031. {
  1032. foreach (PlayerClient player in PlayerClient.All)
  1033. {
  1034. ConsoleNetworker.SendClientCommand(player.netPlayer, "chat.add AntiCheat \"" + message + "\"");
  1035. }
  1036. }
  1037. public void AntiCheatBroadcastplayerr(string message)
  1038. {
  1039. foreach (PlayerClient player in PlayerClient.All)
  1040. {
  1041. ConsoleNetworker.SendClientCommand(player.netPlayer, "chat.add AntiCheat \"" + message + "\"");
  1042. }
  1043. }
  1044. static void EndDetection(PlayerHandler player)
  1045. {
  1046. NetUser netuser = player.playerclient.netUser;
  1047. if(player.hasloc2)
  1048. TeleportToPos2(netuser, player.firstx1, player.firsty1, player.firstz1);
  1049. returnsettings(player.playerclient.netUser);
  1050. GameObject.Destroy(player);
  1051. }
  1052. void Endflagcheck(PlayerHandlerflagcheck player)
  1053. {
  1054. GameObject.Destroy(player);
  1055. }
  1056. static void Resettest(PlayerHandler player)
  1057. {
  1058.  
  1059. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "input.bind Up F2 F2");
  1060. }
  1061. static void removeui(PlayerHandler player)
  1062. {
  1063. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "gameui.hide");
  1064. }
  1065. static void Resettestt(PlayerClient player, string lastcheckstring)
  1066. {
  1067. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Down " + lastcheckstring + " " + lastcheckstring);
  1068. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Left " + "None" + " " + "None");
  1069. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Right " + "None" + " " + "None");
  1070. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Up " + "None" + " " + "None");
  1071. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Duck " + "None" + " " + "None");
  1072. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Jump " + "None" + " " + "None");
  1073. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Fire " + "None" + " " + "None");
  1074. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Inventory " + "None" + " " + "None");
  1075. }
  1076. static void Resettestt2(PlayerClient player, string lastcheckstring)
  1077. {
  1078. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Down " + lastcheckstring + " " + lastcheckstring);
  1079. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Left " + "None" + " " + "None");
  1080. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Right " + "None" + " " + "None");
  1081. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Up " + "None" + " " + "None");
  1082. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Duck " + "None" + " " + "None");
  1083. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Fire " + "None" + " " + "None");
  1084. ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Inventory " + "None" + " " + "None");
  1085. }
  1086. [ChatCommand("aihelp")]
  1087. void cmdChatsendhelptext(NetUser netuser, string command, string[] args)
  1088. {
  1089. SendReply(netuser, "Refresh Language : Type /airefresh To Refresh Your selected language");
  1090. SendReply(netuser, "Select your system : Type /system mac or pc To Select system");
  1091. SendReply(netuser, "Report Hacker : Type /aireport Playername to report a player Total number of votes needed before check is " + numberofvotes.ToString());
  1092. if (!hasAccess(netuser)) { return; }
  1093. SendReply(netuser, "Force Check : Type /aibotcheckpl to force check a player (flag needed)");
  1094. SendReply(netuser, "To View Reports : Type /aireports to force check a player (flag needed)");
  1095. SendReply(netuser, "Flagcheck flags(used for configuration) : Type /aiflagcheck and /aiflagcheck again to disable it");
  1096. SendReply(netuser, "Promote Player : Type /aipromote playername to add a player to Companion list (flag needed)");
  1097. SendReply(netuser, "Demote player : Type /aidemote playername to Remove a player from the Companion list (flag needed)");
  1098. SendReply(netuser, "Test Zone : Type /aisafezone To save /remove a testzone (flag needed)");
  1099. SendReply(netuser, "Force end check : Type /aibotendcheck to force end check on a player (flag needed)");
  1100. SendReply(netuser, "Remove Language : Type /aiforceremovelang To Remove A Language dictionary (flag needed)");
  1101. }
  1102. void SendHelpText(NetUser netuser)
  1103. {
  1104. SendReply(netuser, "AdminCompanion : Type /aihelp to get help about the AdminCompanion plugin");
  1105. }
  1106. public static void checkplayer(PlayerHandler player)
  1107. {
  1108.  
  1109. if(!shouldcheckhackmenu)
  1110. {
  1111. AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Cleared from this plugin");
  1112. undofixplayerhp(player);
  1113. returnsettings(player.playerclient.netUser);
  1114. player.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(false);
  1115. EndDetection(player);
  1116. return;
  1117. }
  1118. var crouchjumpexploitdetection = player.playerclient.controllable.stateFlags.flags;
  1119. player.h++;
  1120. if(shouldbanforidle)
  1121. if(player.h >= idletimetillban)
  1122. {
  1123. if(shoulddoipban)
  1124. ipban(player, "AdminCompanion(Max Amount of Idle Time Reached)");
  1125. AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for idle during test");
  1126. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Max Amount of Idle Time Reached)");
  1127. return;
  1128. }
  1129.  
  1130. if(player.didteleport)
  1131. {
  1132. Resettestt(player.playerclient, player.laststring2);
  1133. if(player.playertestdelaycount <= 1)
  1134. {
  1135.  
  1136. player.playertestdelaycount++;
  1137. return;
  1138. }
  1139. player.didteleport = false;
  1140. return;
  1141. }
  1142. var check = player.playerclient.controllable.stateFlags.flags;
  1143. if(!player.playerclient.controllable.stateFlags.grounded)
  1144. return;
  1145. if(check == null)
  1146. return;
  1147.  
  1148. NetUser netuser = player.playerclient.netUser;
  1149. var pitch = player.playerclient.controllable.eyesPitch;
  1150. var datastore2 = Getplayerdatastore("AdminCompanion(Lang.Log)");
  1151. if(!player.playerhaslang2)
  1152. return;
  1153.  
  1154.  
  1155. if(!player.hasresettest)
  1156. {
  1157. Resettestt(player.playerclient, player.laststring2);
  1158. player.hasresettest = true;
  1159. return;
  1160. }
  1161. var language = Getplayerdatastore(player.language);
  1162. var location1 = player.playerclient.lastKnownPosition;
  1163. var distance3D = player.distance3D;
  1164. var distance3d3 = Math.Floor(Vector3.Distance(player.playerclient.lastKnownPosition, player.lastPosition));
  1165. if(!language.ContainsKey("F2testmsg"))
  1166. {
  1167. return;
  1168. }
  1169.  
  1170. if(!language.ContainsKey("donotdcmessage"))
  1171. {
  1172. return;
  1173. }
  1174.  
  1175.  
  1176. var holdf2msg = language["F2testmsg"].ToString();
  1177. int pFrom = holdf2msg.IndexOf("F2");
  1178. var result2 = holdf2msg.Remove(pFrom, 2);
  1179. var inserttest = result2.Insert(pFrom, "ins/insert");
  1180. var stevencheck = result2.Insert(pFrom, "F5");
  1181. var disconnectmsg = language["donotdcmessage"].ToString();
  1182. var completedmsg = language["Completedmsg"].ToString();
  1183. if(check == menuscreenflag)
  1184. {
  1185. removeui(player);
  1186. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + " " + disconnectmsg + "\"");
  1187. player.wasinmenu = true;
  1188. return;
  1189. }
  1190. if(player.wasinmenu)
  1191. {
  1192. player.wasinmenucount++;
  1193. if(player.wasinmenucount >= 3)
  1194. {
  1195. player.wasinmenu = false;
  1196. player.wasinmenucount = 0;
  1197. }
  1198. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "was in menu " + "\"");
  1199. Resettestt(player.playerclient, player.laststring2);
  1200. return;
  1201. }
  1202. if(!shouldcheckdizzy)
  1203. if(!player.hasfinisheddizzy2)
  1204. {
  1205. player.finisheddizzycheck = true;
  1206. player.laststring2 = "insert";
  1207. Resettestt(player.playerclient, player.laststring2);
  1208. player.hasfinisheddizzy2 = true;
  1209. }
  1210.  
  1211. if(!player.finisheddizzycheck)
  1212. {
  1213. player.laststring2 = "F2";
  1214. if(check == menuscreenflag)
  1215. {
  1216. removeui(player);
  1217. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + " " + disconnectmsg + "\"");
  1218. player.wasinmenu = true;
  1219. return;
  1220. }
  1221.  
  1222. if(distance3D.ToString() == "0")
  1223. {
  1224. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + holdf2msg + "\"");
  1225. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "[color orange]If you dont move press FN(function) + F2" + "\"");
  1226. return;
  1227. }
  1228. if(player.playerclient.controllable.stateFlags.lostFocus)
  1229. {
  1230. if(shoulddoipban)
  1231. ipban(player, "AdminCompanion(Dizzy Hack)");
  1232. AntiCheatBroadcastplayer(player.playerclient.userName + " [color red]has been autodetected of a menu - A3mon/Dizzy Client Menu");
  1233. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Dizzy Hack)");
  1234. numberofbansdizzy++;
  1235. return;
  1236. }
  1237. if(distance3D.ToString().Contains("-"))
  1238. {
  1239. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + holdf2msg + "\"");
  1240. return;
  1241. }
  1242. if(check.ToString() == "6272")
  1243. {
  1244. if(shoulddoipban)
  1245. ipban(player, "AdminCompanion(Dizzy Hack)");
  1246. AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for using Dizzy/A3mon hack");
  1247. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Dizzy Hack)");
  1248. numberofbansdizzy++;
  1249. return;
  1250. }
  1251.  
  1252. if(distance3D <= 1.77777)
  1253. return;
  1254. if(distance3D <= 2.77777)
  1255. return;
  1256. if(!player.playerclient.controllable.stateFlags.movement)
  1257. return;
  1258. var location2 = player.lastPosition;
  1259. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "at checkstate" + "\"");
  1260. player.laststring2 = "insert";
  1261. player.finisheddizzycheck = true;
  1262. player.hasresettest = false;
  1263. player.h = 0f;
  1264. player.count++;
  1265.  
  1266. return;
  1267. }
  1268. if(player.count >= 1)
  1269. {
  1270. player.count = 0;
  1271. Resettestt(player.playerclient, player.laststring2);
  1272. return;
  1273. }
  1274. if(player.system == "mac");
  1275. if(!player.hasfinishedjacked2)
  1276. {
  1277. player.finishedjackedcheck = true;
  1278. player.laststring2 = "F5";
  1279. Resettestt(player.playerclient, player.laststring2);
  1280. player.hasfinishedjacked2 = true;
  1281. }
  1282.  
  1283. if(!shouldcheckjacked)
  1284. if(!player.hasfinishedjacked2)
  1285. {
  1286. player.finishedjackedcheck = true;
  1287. player.laststring2 = "F5";
  1288. Resettestt(player.playerclient, player.laststring2);
  1289. player.hasfinishedjacked2 = true;
  1290. }
  1291. if(!player.finishedjackedcheck)
  1292. {
  1293. player.laststring2 = "insert";
  1294. Resettestt(player.playerclient, player.laststring2);
  1295. if(check == menuscreenflag)
  1296. {
  1297. removeui(player);
  1298. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + " " + disconnectmsg + "\"");
  1299. Resettestt(player.playerclient, player.laststring2);
  1300. player.wasinmenu = true;
  1301. return;
  1302. }
  1303. if(distance3D.ToString() == "0")
  1304. {
  1305. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + inserttest + "\"");
  1306. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "[color orange]If you dont move press FN(function) + insert" + "\"");
  1307. return;
  1308. }
  1309. if(player.playerclient.controllable.stateFlags.lostFocus)
  1310. {
  1311. if(shoulddoipban)
  1312. ipban(player, "AntiCheat(Jacked Hack Detected)");
  1313. AntiCheatBroadcastplayer(player.playerclient.userName + " [color red]has been autodetected of a menu - Rust Jacked Menu");
  1314. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AntiCheat(Jacked Hack Detected)");
  1315. numberofbansjacked++;
  1316. return;
  1317. }
  1318. if(distance3D.ToString().Contains("-"))
  1319. {
  1320. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + inserttest + "\"");
  1321. return;
  1322. }
  1323. if(distance3D <= 1.77777)
  1324. return;
  1325. if(distance3D <= 2.77777)
  1326. return;
  1327. if(!player.playerclient.controllable.stateFlags.movement)
  1328. return;
  1329. player.h = 0f;
  1330. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "finished jacked check" + "\"");
  1331. player.finishedjackedcheck = true;
  1332. player.hasresettest = false;
  1333. player.laststring2 = "F5";
  1334. player.hasresettest = false;
  1335. player.count = 1;
  1336. return;
  1337.  
  1338. }
  1339. if(player.count == 1)
  1340. {
  1341. player.count = 0;
  1342. Resettestt(player.playerclient, player.laststring2);
  1343. return;
  1344. }
  1345. if(!shouldchecksteven)
  1346. {
  1347. player.finishedstevencheck = true;
  1348. }
  1349. if(!player.finishedstevencheck)
  1350. {
  1351. player.laststring2 = "F5";
  1352. if(check == menuscreenflag)
  1353. {
  1354. removeui(player);
  1355. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + disconnectmsg + "\"");
  1356. Resettestt(player.playerclient, player.laststring2);
  1357. player.wasinmenu = true;
  1358. return;
  1359. }
  1360. if(distance3D.ToString() == "0")
  1361. {
  1362. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + stevencheck + "\"");
  1363. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "[color orange]If you dont move press FN(function) + F5" + "\"");
  1364. return;
  1365. }
  1366. if(distance3D.ToString().Contains("-"))
  1367. {
  1368. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + stevencheck + "\"");
  1369. return;
  1370. }
  1371.  
  1372. if(player.playerclient.controllable.stateFlags.lostFocus)
  1373. {
  1374. if(shoulddoipban)
  1375. ipban(player, "AntiCheat(Steven Hack Detected)");
  1376. AntiCheatBroadcastplayer(player.playerclient.userName + " [color red]has been autodetected of a menu - Steven Menu");
  1377. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AntiCheat(Steven Hack Detected)");
  1378. numberofbanssteven++;
  1379. return;
  1380. }
  1381. if(distance3D <= 1.77777)
  1382. return;
  1383. if(distance3D <= 2.77777)
  1384. return;
  1385. if(!player.playerclient.controllable.stateFlags.movement)
  1386. return;
  1387. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "finished steven check" + "\"");
  1388. player.finishedstevencheck = true;
  1389. }
  1390. AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Cleared from this plugin");
  1391. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "Thank you for your cooperation " + player.playerclient.userName + "\"");
  1392. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + completedmsg + " " + player.playerclient.userName + "\"");
  1393. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "finished dizzycheck" + "\"");
  1394. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "finished jacked check" + "\"");
  1395. returnsettings(player.playerclient.netUser);
  1396. undofixplayerhp(player);
  1397. player.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(false);
  1398. EndDetection(player);
  1399.  
  1400. }
  1401. public static void clearalldata(PlayerHandler player)
  1402. {
  1403. DataStore[player.playerclient.userID.ToString()] = null;
  1404. }
  1405. public static object returnsettings(NetUser player)
  1406. {
  1407. ConsoleNetworker.SendClientCommand(player.networkPlayer, "config.load");
  1408. return true;
  1409. }
  1410. public static bool hasplayerlanguage(PlayerHandler player)
  1411. {
  1412. var data = Getplayerdatastore("AdminCompanion(Lang.Log)");
  1413. if(data.ContainsKey(player.playerclient.userID.ToString()))
  1414. return true;
  1415. return false;
  1416. }
  1417. public static void returnallsetting(PlayerHandler playerr)
  1418. {
  1419. if(falldamageenabled)
  1420. return;
  1421. if(!falldamageenabled)
  1422. {
  1423. ConsoleSystem.Run("falldamage.enabled false", false);
  1424. }
  1425. foreach (PlayerClient player in PlayerClient.All)
  1426. {
  1427. if (player.userID != playerr.playerclient.userID)
  1428. {
  1429. if(player.rootControllable == null)
  1430. return;
  1431. FallDamage falldamage = player.rootControllable.GetComponent<FallDamage>();
  1432. falldamage.enabled = false;
  1433. }
  1434. }
  1435. }
  1436. public static void dosettings(PlayerHandler playerr)
  1437. {
  1438. ConsoleSystem.Run("falldamage.enabled true", false);
  1439. if(falldamageenabled)
  1440. return;
  1441. foreach (PlayerClient player in PlayerClient.All)
  1442. {
  1443. if (player.userID != playerr.playerclient.userID)
  1444. {
  1445. if(player.rootControllable == null)
  1446. return;
  1447. FallDamage falldamage = player.rootControllable.GetComponent<FallDamage>();
  1448. falldamage.enabled = false;
  1449. }
  1450. }
  1451. }
  1452. public static void hassetfallimpact(PlayerHandler playerr)
  1453. {
  1454. foreach (PlayerClient player in PlayerClient.All)
  1455. {
  1456. if (player.userID != playerr.playerclient.userID)
  1457. {
  1458. FallDamage falldamage = player.rootControllable.GetComponent<FallDamage>();
  1459. falldamage.enabled = false;
  1460. }
  1461. }
  1462. }
  1463. public static void setserversettings(PlayerHandler player)
  1464. {
  1465.  
  1466. }
  1467. public static void Snappycheck(PlayerHandler player)
  1468. {
  1469.  
  1470. }
  1471. public static void checkplayerjumpspeed(PlayerHandler player)
  1472. {
  1473. var crouchjumpexploitdetection = player.playerclient.controllable.stateFlags.flags;
  1474.  
  1475. if(!shouldcheckjumpspeed)
  1476. {
  1477. player.passedjumptest = true;
  1478. return;
  1479. }
  1480. if(!player.hasressetjsettings)
  1481. {
  1482. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "config.load");
  1483. Resettestt2(player.playerclient, player.laststring2);
  1484. player.hasressetjsettings = true;
  1485. }
  1486.  
  1487. if(!player.autolanguage)
  1488. if(!Issober2(player))
  1489. {
  1490. Debug.Log("AdminCompanion : Something went Wrong Test ended on without finishing " + player.playerclient.userName.ToString());
  1491. EndDetection(player);
  1492. return;
  1493. }
  1494. if(player.crouchdelayactivated)
  1495. {
  1496. player.crouchdelay++;
  1497. if(player.crouchdelay >= 3f)
  1498. {
  1499. player.crouchdelay = 0f;
  1500. player.crouchdelayactivated = false;
  1501. }
  1502. return;
  1503. }
  1504. var language = Getplayerdatastore(player.language);
  1505. var jumptest = language["speedjumptestmsg"].ToString();
  1506. if(crouchjumpexploitdetection == menuscreenflag)
  1507. {
  1508. player.messagetally8++;
  1509. if(player.messagetally8 > 75f)
  1510. {
  1511. player.messagetally8 = 0f;
  1512. Resettestt2(player.playerclient, player.laststring2);
  1513. removeui(player);
  1514. }
  1515. return;
  1516. }
  1517.  
  1518. if(!language.ContainsKey("donotcrouchmsg"))
  1519. {
  1520. return;
  1521. }
  1522. var crouchmsg = language["donotcrouchmsg"].ToString();
  1523. if(crouchjumpexploitdetection == crouchdetetctionsecondflagcheck || crouchjumpexploitdetection == 6209)
  1524. {
  1525. player.messagetally4++;
  1526. if(player.messagetally4 >= 15f)
  1527. {
  1528. player.messagetally4 = 0f;
  1529. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + " " + crouchmsg + "\"");
  1530. }
  1531. player.crouchdelayactivated = true;
  1532. return;
  1533. }
  1534.  
  1535. if(player.messagetally == 0f)
  1536. {
  1537. player.shouldsendmessagetally = true;
  1538. }
  1539.  
  1540.  
  1541. if(!language.ContainsKey("speedjumptestmsg"))
  1542. {
  1543. return;
  1544. }
  1545.  
  1546. if(!player.isinjumptest)
  1547. {
  1548.  
  1549. if(player.didjump)
  1550. {
  1551. if(player.playerclient.controllable.stateFlags.grounded)
  1552. {
  1553. player.didjump = false;
  1554. }
  1555. return;
  1556. }
  1557. player.messagetally5++;
  1558. if(player.messagetally5 >= 60f)
  1559. {
  1560. player.messagetally5 = 0f;
  1561. player.s++;
  1562. if(shouldbanforidle)
  1563. if(player.s >= idletimetillban)
  1564. {
  1565. if(shoulddoipban)
  1566. ipban(player, "AdminCompanion(Max amount of idle time reached)");
  1567. AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for being idle during test");
  1568. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Max amount of idle time reached)");
  1569. return;
  1570. }
  1571. }
  1572. if(player.playerclient.controllable.stateFlags.grounded)
  1573. {
  1574. player.messagetally++;
  1575. if(player.messagetally >= 60f)
  1576. {
  1577.  
  1578. player.messagetally = 0f;
  1579. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + " " + jumptest + "\"");
  1580. }
  1581. if(!player.didjump){
  1582. player.playerjumpspeed++;
  1583. }
  1584. return;
  1585. }
  1586.  
  1587. player.didjump = true;
  1588. if(player.playerjumpspeed < 38)
  1589. {
  1590. if(shouldbepinglienient)
  1591. {
  1592. var ping = player.playerclient.netUser.networkPlayer.averagePing;
  1593. if(ping != null)
  1594. if(ping >= pinglimitbeforeignore)
  1595. return;
  1596. }
  1597. if(!player.fistspeedjumpdetection)
  1598. {
  1599. player.fistspeedjumpdetection = true;
  1600. return;
  1601. }
  1602. if(!player.hasfinishedthrdexcepion)
  1603. {
  1604. player.hasfinishedthrdexcepion = true;
  1605. player.timedjumpdettections -= 3;
  1606. return;
  1607. }
  1608. if(shoulddoipban)
  1609. ipban(player, "AntiCheat(Speed Jump)");
  1610. AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for Speed Jumping");
  1611. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "speed jump dettected" + "\"");
  1612. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AntiCheat(Speed Jump)");
  1613. numberofspeedjumpban++;
  1614. return;
  1615. }
  1616.  
  1617.  
  1618. if(player.playerjumpspeed > 63)
  1619. {
  1620. if(!player.firsttimedjumpdetection)
  1621. {
  1622. player.firsttimedjumpdetection = true;
  1623. return;
  1624. }
  1625. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "I will ban you for timing jumps " + "\"");
  1626. if(shouldbanforitmingjumps)
  1627. {
  1628. var ping = player.playerclient.netUser.networkPlayer.averagePing;
  1629. if(ping != null)
  1630. if(ping <= pinglimitbeforeignore)
  1631. player.timedjumpdettections++;
  1632. if(player.timedjumpdettections >= numberoftimedjumpdettectionsbeforeban)
  1633. {
  1634.  
  1635. if(!player.firstjump)
  1636. {
  1637. if(shoulddoipban)
  1638. ipban(player, "AntiCheat(Timing Jumps " + player.playerjumpspeed.ToString() + ")");
  1639. AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for Timing Jumps");
  1640. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Timing Jumps " + player.playerjumpspeed.ToString() + ")");
  1641. return;
  1642. }
  1643. if(!player.firstjump)
  1644. {
  1645. player.firstjump = true;
  1646. }
  1647. }
  1648. }
  1649.  
  1650. }
  1651. if(player.playerjumpspeed > 48 && player.playerjumpspeed <= 62)
  1652. {
  1653. if(!player.firstpass)
  1654. {
  1655. player.firstpass = true;
  1656. return;
  1657. }
  1658. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "We have determined that you are not using a ccmotor jump modifier" + "\"");
  1659. player.passedjumptest = true;
  1660. }
  1661. player.playerjumpspeed = 0;
  1662. }
  1663. }
  1664. public static void undofixplayerhp(PlayerHandler source)
  1665. {
  1666. if (source == null || source.playerclient == null) return;
  1667. if (source == null || source.playerclient.controllable == null) return;
  1668. FallDamage falldamage = source.playerclient.rootControllable.GetComponent<FallDamage>();
  1669. var testc = source.playerclient.rootControllable.GetComponent<HumanBodyTakeDamage>();
  1670. PlayerHandler phandler = source.playerclient.GetComponent<PlayerHandler>();
  1671. phandler.hasdoneheal = true;
  1672. if(testc == null)
  1673. {
  1674. }
  1675. testc.Bandage( 1000.0f );
  1676. falldamage.ClearInjury();
  1677.  
  1678.  
  1679. }
  1680. public static bool Issober(PlayerHandler player)
  1681. {
  1682. var datastore = Getplayerdatastore(player.playerclient.userID.ToString());
  1683. if(!datastore.ContainsKey("Language"))
  1684. return false;
  1685. if(datastore["Language"] == null)
  1686. return false;
  1687.  
  1688. if(!datastore.ContainsKey("Language"))
  1689. return true;
  1690. return false;
  1691. }
  1692. public static bool Issober2(PlayerHandler player)
  1693. {
  1694. var datastore = Getplayerdatastore(player.playerclient.userID.ToString());
  1695. var dataplus = datastore["Language"].ToString();
  1696. var data3 = Getplayerdatastore(dataplus);
  1697. if(!data3.ContainsKey("F2testmsg"))
  1698. return false;
  1699. if(DataStore[dataplus] == null)
  1700. return false;
  1701. return true;
  1702. }
  1703. public static void doenglishdic()
  1704. {
  1705. var defaultenglishlanguage = Getplayerdatastore("en");
  1706. if(!defaultenglishlanguage.ContainsKey("speedjumptestmsg"))
  1707. {
  1708. defaultenglishlanguage.Add("F2testmsg", "Please Hold F2");
  1709. defaultenglishlanguage.Add("speedjumptestmsg", "Jump fast please");
  1710. defaultenglishlanguage.Add("norecoiltestmsg", "Please take out the weapon we have placed in your inventory");
  1711. defaultenglishlanguage.Add("nospreadtestmsg", "take out your weapon and shoot that wall");
  1712. defaultenglishlanguage.Add("Completedmsg", "Thank you for your cooperation you have completed all test's ");
  1713. defaultenglishlanguage.Add("donotcrouchmsg", "Please do not crouch during this test");
  1714. defaultenglishlanguage.Add("donotdcmessage", "Please do not Disconnect during this Test");
  1715. defaultenglishlanguage.Add("Dorecoiltest", "Please press and Hold c");
  1716. }
  1717. }
  1718. public static void GetLanguage(PlayerHandler player)
  1719. {
  1720. var datastore = Getplayerdatastore(player.playerclient.userID.ToString());
  1721. var check = player.playerclient.controllable.stateFlags.flags;
  1722. if(!player.isininventory)
  1723. if(check != null)
  1724. {
  1725. if(player.playerclient.controllable.stateFlags.lostFocus)
  1726. {
  1727. if(!player.hasreceild2)
  1728. {
  1729. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "config.load");
  1730. player.hasreceild2 = true;
  1731. }
  1732. return;
  1733. }
  1734. if(!player.hasreceildcheck)
  1735. {
  1736. Resettestt2(player.playerclient, player.laststring2);
  1737. player.hasreceildcheck = true;
  1738. }
  1739. player.isininventory = true;
  1740. }
  1741. if(check == null)
  1742. return;
  1743. if(check == menuscreenflag)
  1744. {
  1745. player.messagetally7++;
  1746. if(player.messagetally7 > 75f)
  1747. {
  1748. Resettestt2(player.playerclient, player.laststring2);
  1749. player.messagetally7 = 0f;
  1750. removeui(player);
  1751. }
  1752. return;
  1753. }
  1754. if(shoulduseenglishdictionaryonly)
  1755. {
  1756. doenglishdic();
  1757. player.autolanguage = true;
  1758. player.language = "en";
  1759. player.hasselectedlanguage = true;
  1760. player.forcefinish = true;
  1761. player.playerhaslang2 = true;
  1762. return;
  1763. }
  1764. if(!player.hasselectedlanguage)
  1765. {
  1766. player.messagetally3++;
  1767. if(player.messagetally3 >= 60f)
  1768. {
  1769. player.messagetally3 = 0f;
  1770. Resettestt2(player.playerclient, player.laststring2);
  1771. player.inttimetally++;
  1772. if(player.inttimetally >= 30)
  1773. {
  1774. doenglishdic();
  1775. player.autolanguage = true;
  1776. player.language = "en";
  1777. player.hasselectedlanguage = true;
  1778. player.forcefinish = true;
  1779. player.playerhaslang2 = true;
  1780. return;
  1781. }
  1782. }
  1783. if(datastore.ContainsKey("Language"))
  1784. {
  1785. var langg = datastore["Language"].ToString();
  1786. var signature = Getplayerdatastore(langg);
  1787. if(!signature.ContainsKey("F2testmsg") || !signature.ContainsKey("speedjumptestmsg") || !signature.ContainsKey("nospreadtestmsg") || !signature.ContainsKey("Dorecoiltest") || !signature.ContainsKey("donotdcmessage") || !signature.ContainsKey("norecoiltestmsg"))
  1788. {
  1789. DataStore[langg] = null;
  1790. if(datastore.ContainsKey("Language"))
  1791. datastore.Remove("Language");
  1792. return;
  1793. }
  1794. if(signature ["F2testmsg"].ToString().Contains("INVALID"))
  1795. {
  1796. DataStore[langg] = null;
  1797. if(datastore.ContainsKey("Language"))
  1798. datastore.Remove("Language");
  1799. return;
  1800. }
  1801. player.language = langg;
  1802. player.hasselectedlanguage = true;
  1803. player.forcefinish = true;
  1804. }
  1805. player.messagetally2++;
  1806. if(player.messagetally2 >= 60f)
  1807. if(!datastore.ContainsKey("Language"))
  1808. {
  1809. var crouchjumpexploitdetection = player.playerclient.controllable.stateFlags.flags;
  1810. player.messagetally2 = 0f;
  1811. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "please type something in chat with your native language to continue " + player.playerclient.userName + "\"");
  1812. return;
  1813. }
  1814. if(!Issober(player))
  1815. {
  1816. if(player.messagetally2 >= 60f)
  1817. {
  1818.  
  1819. player.messagetally2 = 0f;
  1820. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "please type something in chat with your native language to continue" + "\"");
  1821. }
  1822. return;
  1823. }
  1824. if(!datastore.ContainsKey("Language"))
  1825. {
  1826. player.messagetally++;
  1827. if(player.messagetally2 >= 60f)
  1828. {
  1829. player.messagetally2 = 0f;
  1830. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "please type something in chat with your native language to continue" + "\"");
  1831. return;
  1832. }
  1833. return;
  1834. }
  1835. player.hasselectedlanguage = true;
  1836. return;
  1837. }
  1838. if(!datastore.ContainsKey("Language"))
  1839. {
  1840. player.messagetally++;
  1841. if(player.messagetally2 >= 60f)
  1842. {
  1843. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + "Umm..... Soemthing whent wrong I will attemp to fix :)" + "\"");
  1844. player.messagetally2 = 0f;
  1845.  
  1846. }
  1847. player.hasselectedlanguage = false;
  1848. return;
  1849. }
  1850. var lang = datastore["Language"].ToString();
  1851. if(!player.forcefinish)
  1852. {
  1853. player.messagetally2++;
  1854. if(player.messagetally2 >= 60f)
  1855. if(!datastore.ContainsKey("Language"))
  1856. {
  1857. player.hasselectedlanguage = false;
  1858. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + "Warning you should never see this ask an admin to end test if you see this again" + "\"");
  1859. player.messagetally2 = 0f;
  1860. return;
  1861. }
  1862. if(DataStore[lang] == null)
  1863. {
  1864. datastore.Remove("Language");
  1865. return;
  1866. }
  1867. var failsafe = Getplayerdatastore(lang);
  1868. if(!Issober2(player))
  1869. {
  1870. return;
  1871. }
  1872. if(!failsafe.ContainsKey("F2testmsg"))
  1873. {
  1874. DataStore[lang] = null;
  1875. datastore.Remove("Language");
  1876. return;
  1877. }
  1878. player.language = lang;
  1879. player.playerhaslang2 = true;
  1880. player.forcefinish = true;
  1881. return;
  1882.  
  1883. }
  1884. if(!Issober2(player))
  1885. {
  1886. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + "Ummm........ Something whent wrong correcting all error's" + "\"");
  1887. datastore.Remove("Language");
  1888.  
  1889. player.forcefinish = false;
  1890. player.hasselectedlanguage = false;
  1891. Debug.Log("AdminCompanion : Some thing whent wrong you will have to redefine your language sorry for the inconvienience");
  1892. return;
  1893. }
  1894. player.language = datastore["Language"].ToString();
  1895. player.playerhaslang2 = true;
  1896. return;
  1897. if(player.forcefinish)
  1898. {
  1899. player.messagetally2++;
  1900. if(player.messagetally2 >= 60f)
  1901. if(shouldautoselectlagnuageifplayeridl)
  1902. {
  1903. player.idletimecount++;
  1904. if(player.idletimecount >= idletimetillautoseectlanguage)
  1905. {
  1906. player.language = "en";
  1907. player.playerhaslang2 = true;
  1908. return;
  1909. }
  1910. }
  1911. if(player.messagetally >= 60f)
  1912. {
  1913. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + "please type something in chat with your native language to continue" + "\"");
  1914. player.messagetally = 0f;
  1915. }
  1916. }
  1917. return;
  1918. var datastore2 = Getplayerdatastore("AdminCompanion(Lang.Log)");
  1919. if(datastore2.ContainsKey(player.playerclient.userID.ToString()))
  1920. {
  1921. foreach (KeyValuePair<string, object> pair in datastore2)
  1922. if (pair.Value.ToString() == player.playerclient.userID.ToString() || pair.Key.ToString() == player.playerclient.userID.ToString() || pair.Value.ToString().ToLower() == player.playerclient.userID.ToString() || pair.Key.ToString().ToLower() == player.playerclient.userID.ToString() || pair.Value.ToString().ToLower().Contains(player.playerclient.userID.ToString()) || pair.Key.ToString().ToLower().Contains(player.playerclient.userID.ToString()))
  1923. {
  1924. var uid = pair.Value.ToString();
  1925. player.language = uid;
  1926. var datastore3 = Getplayerdatastore(uid);
  1927. if(!datastore3.ContainsKey("Completedmsg"))
  1928. return;
  1929. player.playerhaslang2 = true;
  1930. }
  1931. }
  1932. if(datastore2.ContainsKey(player.playerclient.userID.ToString()))
  1933. {
  1934. foreach (KeyValuePair<string, object> pair in datastore2)
  1935. if (pair.Value.ToString() == player.playerclient.userID.ToString() || pair.Key.ToString() == player.playerclient.userID.ToString() || pair.Value.ToString().ToLower() == player.playerclient.userID.ToString() || pair.Key.ToString().ToLower() == player.playerclient.userID.ToString() || pair.Value.ToString().ToLower().Contains(player.playerclient.userID.ToString()) || pair.Key.ToString().ToLower().Contains(player.playerclient.userID.ToString()))
  1936. {
  1937. var uid = pair.Value.ToString();
  1938. player.language = uid;
  1939. player.playerhaslang2 = true;
  1940. return;
  1941. }
  1942. }
  1943. if(!player.hasselectedlanguage)
  1944. {
  1945. player.messagetally2++;
  1946. if(player.messagetally2 >= 60f)
  1947. {
  1948. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + "please type something in chat with your native language to continue" + "\"");
  1949. player.messagetally2 = 0f;
  1950. }
  1951. return;
  1952. }
  1953. if(!player.playerhaslang2)
  1954. {
  1955. foreach (KeyValuePair<string, object> pair in datastore2)
  1956. if (pair.Value.ToString() == player.playerclient.userID.ToString() || pair.Key.ToString() == player.playerclient.userID.ToString() || pair.Value.ToString().ToLower() == player.playerclient.userID.ToString() || pair.Key.ToString().ToLower() == player.playerclient.userID.ToString() || pair.Value.ToString().ToLower().Contains(player.playerclient.userID.ToString()) || pair.Key.ToString().ToLower().Contains(player.playerclient.userID.ToString()))
  1957. {
  1958. var uid = pair.Value.ToString();
  1959. player.language = uid;
  1960. player.playerhaslang2 = true;
  1961. return;
  1962. }
  1963. }
  1964. }
  1965. public class PlayerHandlerflagcheck : UnityEngine.MonoBehaviour
  1966. {
  1967.  
  1968.  
  1969. public PlayerClient playerclient;
  1970. public string userid;
  1971. public Character character;
  1972. public float lastTick;
  1973. public float currentTick;
  1974.  
  1975.  
  1976. void Awake()
  1977. {
  1978. lastTick = UnityEngine.Time.realtimeSinceStartup;
  1979. enabled = false;
  1980. }
  1981. public void StartCheck()
  1982. {
  1983. this.playerclient = GetComponent<PlayerClient>();
  1984. this.userid = this.playerclient.userID.ToString();
  1985. if (playerclient.controllable == null) return;
  1986. this.character = playerclient.controllable.GetComponent<Character>();
  1987. enabled = true;
  1988.  
  1989. FixedUpdate();
  1990. }
  1991. void FixedUpdate()
  1992. {
  1993. if (UnityEngine.Time.realtimeSinceStartup - lastTick >= 1)
  1994. {
  1995. currentTick = UnityEngine.Time.realtimeSinceStartup;
  1996. lastTick = currentTick;
  1997. var characterstate = this.playerclient.controllable.stateFlags.flags;
  1998. ConsoleNetworker.SendClientCommand(this.playerclient.netPlayer, "chat.add AdminCompanion \"" + "Your current character state is " + characterstate + "\"");
  1999. }
  2000. }
  2001. }
  2002. public class PlayerHandler : UnityEngine.MonoBehaviour
  2003. {
  2004. public bool firstmessage;
  2005. public string system = "None";
  2006. public bool hasreceild2;
  2007. public bool hasreceildcheck;
  2008. public bool hasfinishedthrdexcepion;
  2009. public IInventoryItem lastinventoryitem;
  2010. public bool hasremoveditem;
  2011. public bool hasceildcheck;
  2012. public bool hasfinisheddizzy2;
  2013. public bool hasfinishedsteven2;
  2014. public bool hasfinishedjacked2;
  2015. public bool nofallexception;
  2016. public bool hasressetjsettings;
  2017. public bool autolanguage;
  2018. public bool isininventory;
  2019. public string newstring;
  2020. public string newstring2;
  2021. public string newstring3;
  2022. public string newstring4;
  2023. public string newstring5;
  2024. public string newstring6;
  2025. public string newstring7;
  2026. public string newstring8;
  2027. public int intt = 30;
  2028. public string normstring;
  2029. public int inttimetally;
  2030. public int numberoffakecalls;
  2031. public int savedweaponnumber;
  2032. public bool hasgotengivenitem;
  2033. public bool detectionended;
  2034. public bool hasrefreshedinventorysettings;
  2035. public bool secoonddetect;
  2036. public bool thrddetect;
  2037. public float fallcount;
  2038. public bool firstdetect;
  2039. public float n;
  2040. public bool fistspeedjumpdetection;
  2041. public float s;
  2042. public float h;
  2043. public float nr;
  2044. public Vector3 point;
  2045. public bool hasdoneheal;
  2046. public GameObject Load;
  2047. public float firstx;
  2048. public float firstx1;
  2049. public float firsty1;
  2050. public float firstz1;
  2051. public bool didteleportback;
  2052. public bool crouchdelayactivated;
  2053. public bool isreturningsettings;
  2054. public bool firsttimedjumpdetection;
  2055. public float crouchdelay;
  2056. public string whatsyourlanguage;
  2057. public bool playerhasremovednulllang;
  2058. public int playertestdelaycount;
  2059. public float lasthealth;
  2060. public float firsty;
  2061. public int count3;
  2062. public int timedjumpdettections = 0;
  2063. public float idletimecount;
  2064. public float firstz;
  2065. public bool hasresettest;
  2066. public bool didteleport;
  2067. public bool forcefinish;
  2068. public bool firstjump;
  2069. public int secondselect = 0;
  2070. public bool firstnofalldetection;
  2071. public bool firsttime;
  2072. public bool isfirstcheck;
  2073. public bool firstpasseular;
  2074. public bool hascompletednofallcheck;
  2075. public bool passednorecoiltest;
  2076. public bool firstgetclimpammo;
  2077. public bool hasgivenammo;
  2078. public string lastclipammo;
  2079. public string lasteularangles;
  2080. public InventoryItem lastdatablock;
  2081. public bool datablocknull;
  2082. public ItemDataBlock lastdatablock2;
  2083. public ItemDataBlock lastdatablock3;
  2084. public bool hasgivenweapon;
  2085. public bool hasremoveddefaultitem;
  2086. public bool didjump;
  2087. public bool hasselecteddatablock;
  2088. public bool hastakenoutweapon;
  2089. public bool firstpass;
  2090. public bool shouldsendmessagetally;
  2091. public bool passedjumptest;
  2092. public float lasty;
  2093. public float messagetally = 0f;
  2094. public float messagetally2 = 0f;
  2095. public float messagetally3 = 0f;
  2096. public float messagetally4 = 0f;
  2097. public float messagetally5 = 0f;
  2098. public float messagetally6 = 0f;
  2099. public float messagetally7 = 0f;
  2100. public float messagetally8 = 0f;
  2101. public float lasty2;
  2102. public float lastjump;
  2103. public double playerjumpspeed = 0.0;
  2104. public string laststring2 = "F2";
  2105. public string language;
  2106. public bool wasinmenu;
  2107. public bool diddolastjump;
  2108. public bool isinjumptest;
  2109. public bool playerhaslang2;
  2110. public bool hasselectedlanguage;
  2111. public bool finishedspeedjumpptest;
  2112. public float timeleft;
  2113. public float lastTick;
  2114. public float currentTick;
  2115. public float deltaTime;
  2116. public float component2distance;
  2117. public Component componenthit2;
  2118. public Vector3 lastPosition;
  2119. public Vector3 headlocation2;
  2120. public BulletWeaponDataBlock lastbulletitem;
  2121. public float headlocation3;
  2122. public float headlocationangle2;
  2123. public float headlocationangle1;
  2124. public float checkrotaionx;
  2125. public float totaleularanglesplayerhandler;
  2126. public Vector3 lastPosition2;
  2127. public PlayerClient playerclient;
  2128. public Character character;
  2129. public Inventory inventory;
  2130. public string userid;
  2131. public float distance3D;
  2132. public float distance3D2;
  2133. public float distanceHeight;
  2134. public bool finishedstevencheck;
  2135. public bool finishedjackedcheck;
  2136. public bool finisheddizzycheck;
  2137. public bool firstcheckstate;
  2138. public float firtz1;
  2139. public float firty1;
  2140. public int count;
  2141. public int wasinmenucount;
  2142. public float currentFloorHeight;
  2143. public bool hasSearchedForFloor = false;
  2144. public float lastSpeed = UnityEngine.Time.realtimeSinceStartup;
  2145. public int speednum = 0;
  2146. public bool hasteleportedtosafety;
  2147. public bool hasloc2;
  2148.  
  2149. public float lastWalkSpeed = UnityEngine.Time.realtimeSinceStartup;
  2150. public int walkspeednum = 0;
  2151. public bool lastSprint = false;
  2152.  
  2153. public float lastJump = UnityEngine.Time.realtimeSinceStartup;
  2154. public int jumpnum = 0;
  2155. public int message9;
  2156.  
  2157.  
  2158. public float lastFly = UnityEngine.Time.realtimeSinceStartup;
  2159. public int flynum = 0;
  2160.  
  2161. public int noRecoilDetections = 0;
  2162. public int noRecoilKills = 0;
  2163.  
  2164. public float lastWoodCount = 0;
  2165.  
  2166. void Awake()
  2167. {
  2168. lastTick = UnityEngine.Time.realtimeSinceStartup;
  2169. enabled = false;
  2170. }
  2171. public void StartCheck()
  2172. {
  2173. this.playerclient = GetComponent<PlayerClient>();
  2174. this.userid = this.playerclient.userID.ToString();
  2175. if (playerclient.controllable == null) return;
  2176. this.character = playerclient.controllable.GetComponent<Character>();
  2177. this.lastPosition = this.playerclient.lastKnownPosition;
  2178. enabled = true;
  2179.  
  2180. FixedUpdate();
  2181. }
  2182. void FixedUpdate()
  2183. {
  2184. if(this.system == "None")
  2185. {
  2186. Dosystem(this);
  2187. return;
  2188. }
  2189. if(!this.hasteleportedtosafety)
  2190. {
  2191. doteleporttosafety(this);
  2192. return;
  2193. }
  2194. if(!this.playerhaslang2)
  2195. {
  2196. GetLanguage(this);
  2197. }
  2198. if(!this.playerhaslang2)
  2199. {
  2200. return;
  2201. }
  2202. if(!this.passedjumptest)
  2203. checkplayerjumpspeed(this);
  2204. if(this.passedjumptest){
  2205. if (UnityEngine.Time.realtimeSinceStartup - lastTick >= 1)
  2206. {
  2207.  
  2208. if(!this.hascompletednofallcheck)
  2209. checknofall(this);
  2210. if(this.hascompletednofallcheck)
  2211. if(!this.passednorecoiltest)
  2212. norecoilcheck(this);
  2213. if(this.passednorecoiltest)
  2214. checkplayer(this);
  2215. currentTick = UnityEngine.Time.realtimeSinceStartup;
  2216. deltaTime = currentTick - lastTick;
  2217. distance3D = Vector3.Distance(playerclient.lastKnownPosition, lastPosition) / deltaTime;
  2218. distanceHeight = (playerclient.lastKnownPosition.y - lastPosition.y) / deltaTime;
  2219. lastPosition = playerclient.lastKnownPosition;
  2220. lastTick = currentTick;
  2221. this.hasSearchedForFloor = false;
  2222. }}
  2223. }
  2224. }
  2225. static void doteleporttosafety(PlayerHandler player)
  2226. {
  2227. NetUser netuser = player.playerclient.netUser;
  2228. if(!player.hasloc2)
  2229. {
  2230. player.firstx1 = player.playerclient.lastKnownPosition.x;
  2231. player.firsty1 = player.playerclient.lastKnownPosition.y;
  2232. player.firstz1 = player.playerclient.lastKnownPosition.z;
  2233. player.hasloc2 = true;
  2234. }
  2235. var loc = Getplayerdatastore("SafeZone");
  2236. if(!loc.ContainsKey("x"))
  2237. {
  2238. TeleportToPos2(netuser, 0.0f, 389.1f, 0.0f);
  2239. player.hasteleportedtosafety = true;
  2240. return;
  2241. }
  2242. var safex = Convert.ToSingle(loc["x"]);
  2243. var safey = Convert.ToSingle(loc["y"]);
  2244. var safez = Convert.ToSingle(loc["z"]);
  2245. TeleportToPos2(netuser, safex, safey, safez);
  2246. player.hasteleportedtosafety = true;
  2247. return;
  2248.  
  2249. }
  2250. string GetMessage(string key, string steamId = null) => lang.GetMessage(key, this, steamId);
  2251. static void Dosystem(PlayerHandler player)
  2252. {
  2253. if(!player.firstmessage)
  2254. {
  2255. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add " + "AntiCheat \"" + "use /system 'mac' or /system 'pc'" + "\"");
  2256. player.firstmessage = true;
  2257. return;
  2258. }
  2259. player.message9++;
  2260. if(player.message9 >= 80)
  2261. {
  2262. player.message9 = 0;
  2263. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add " + "AntiCheat \"" + "use /system 'mac' or /system 'pc'" + "\"");
  2264. }
  2265. }
  2266.  
  2267. static void TeleportToPos2(NetUser source, float x, float y, float z)
  2268. {
  2269. if (Physics.Raycast(new Vector3(x, -1000f, z), vectorup2, out cachedRaycasttt, Mathf.Infinity, terrainLayerr))
  2270. {
  2271. if (cachedRaycasttt.point.y > y) y = cachedRaycasttt.point.y;
  2272. }
  2273. management2.TeleportPlayerToWorld(source.playerClient.netPlayer, new Vector3(x, y, z));
  2274. }
  2275. static bool PlayerHandlerHasGround(PlayerHandler player)
  2276. {
  2277. if (!player.hasSearchedForFloor)
  2278. {
  2279. if (Physics.Raycast(player.playerclient.lastKnownPosition + UnderPlayerAdjustement, Vector3Down, out cachedRaycasttt, distanceDown))
  2280. player.currentFloorHeight = cachedRaycasttt.distance;
  2281. else
  2282. player.currentFloorHeight = 10f;
  2283. }
  2284. player.hasSearchedForFloor = true;
  2285. if (player.currentFloorHeight < 4f) return true;
  2286. return false;
  2287. }
  2288. static void checknofall2(PlayerHandler player)
  2289. {
  2290. player.lasthealth = player.playerclient.controllable.health;
  2291.  
  2292. player.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
  2293. var time = UnityEngine.Time.realtimeSinceStartup;
  2294. player.didteleport = true;
  2295. if(player.firsttime != true)
  2296. {
  2297. var firstx = player.playerclient.lastKnownPosition.x;
  2298. var firsty = player.playerclient.lastKnownPosition.y;
  2299. var firstz = player.playerclient.lastKnownPosition.z;
  2300. player.firstx = firstx;
  2301. player.firsty = firsty;
  2302. player.firstz = firstz;
  2303. player.firsttime = true;
  2304. }
  2305. NetUser netuser = player.playerclient.netUser;
  2306. TeleportToPos2(netuser, 0.0f, 60000f, 0.0f);
  2307. }
  2308. static bool IsOnSupport(PlayerHandler player)
  2309. {
  2310. foreach( Collider collider in Physics.OverlapSphere(player.playerclient.lastKnownPosition, 5f))
  2311. {
  2312. if (collider.GetComponent<UnityEngine.MeshCollider>())
  2313. return true;
  2314. }
  2315. return false;
  2316. }
  2317. public static void checknofall(PlayerHandler player)
  2318. {
  2319.  
  2320. if(!shouldchecknofall)
  2321. {
  2322.  
  2323. player.hascompletednofallcheck = true;
  2324. return;
  2325. }
  2326.  
  2327. NetUser netuser = player.playerclient.netUser;
  2328. var enhancedcheck = player.lastPosition.y;
  2329. var newcheckdistance = (enhancedcheck - player.playerclient.lastKnownPosition.y);
  2330. var ulongcheck2 = (Math.Abs(newcheckdistance));
  2331. var ulongcheck = (Math.Abs(player.distanceHeight));
  2332. if(!player.isfirstcheck)
  2333. {
  2334. player.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
  2335. if(shouldcheckmultinofall)
  2336. {
  2337. dosettings(player);
  2338. }
  2339.  
  2340. checknofall2(player);
  2341. player.isfirstcheck = true;
  2342. return;
  2343. }
  2344. if (PlayerHandlerHasGround(player) && player.didteleportback == false) return;
  2345. if (IsOnSupport(player) && player.didteleportback == false) return;
  2346. var distanceenhanced2 = (Math.Abs(newcheckdistance));
  2347. if(distanceenhanced2 < 20)
  2348. {
  2349. player.count3++;
  2350. }
  2351.  
  2352. var time = UnityEngine.Time.realtimeSinceStartup;
  2353.  
  2354. var distanceenhanced = (Math.Abs(player.distanceHeight));
  2355. if(!player.playerclient.controllable.stateFlags.grounded)
  2356. if(ulongcheck < 20 && !!player.playerclient.controllable.stateFlags.grounded)
  2357. {
  2358. if(!player.firstnofalldetection)
  2359. {
  2360. player.firstnofalldetection = true;
  2361. return;
  2362. }
  2363. if(!player.nofallexception)
  2364. {
  2365. player.nofallexception = true;
  2366. return;
  2367. }
  2368. if(shoulddoipban)
  2369. ipban(player, "AntiCheat(No Fall Damage)");
  2370. AntiCheatBroadcastplayer(player.playerclient.userName + " [color orange]was detected of using a [color red]MultiHack");
  2371. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AntiCheat(No Fall Damage)");
  2372. numberofbansnofalldamage++;
  2373. return;
  2374. checknofall2(player);
  2375. player.count++;
  2376. return;
  2377. }
  2378.  
  2379. if(!player.didteleportback)
  2380. {
  2381. TeleportToPos2(netuser, player.firstx, player.firsty, player.firstz);
  2382. player.didteleportback = true;
  2383. }
  2384. if(player.fallcount <= 3)
  2385. {
  2386. player.fallcount++;
  2387. return;
  2388. }
  2389. player.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
  2390. if(player.firsttime == true && ulongcheck <= 90 && player.didteleportback == true)
  2391. {
  2392. player.count3 = 0;
  2393.  
  2394. if(shouldcheckmultinofall)
  2395. {
  2396. if(!player.playerclient.rootControllable.stateFlags.grounded)
  2397. return;
  2398. FallDamage falldamage = player.playerclient.rootControllable.GetComponent<FallDamage>();
  2399. if(player.playerclient.controllable.stateFlags.grounded)
  2400. if(falldamage.GetLegInjury() == 0)
  2401. if(player.lasthealth == player.playerclient.controllable.health)
  2402. {
  2403. if(!player.firstdetect)
  2404. {
  2405. player.firstnofalldetection = false;
  2406. player.didteleportback = false;
  2407. checknofall2(player);
  2408. player.firstdetect = true;
  2409. return;
  2410. }if(!player.secoonddetect)
  2411. {
  2412. player.firstnofalldetection = false;
  2413. player.didteleportback = false;
  2414. checknofall2(player);
  2415. player.secoonddetect = true;
  2416. return;
  2417. }
  2418. if(!player.thrddetect)
  2419. {
  2420. player.firstnofalldetection = false;
  2421. player.didteleportback = false;
  2422. checknofall2(player);
  2423. player.secoonddetect = true;
  2424. player.fallcount = 0;
  2425. player.thrddetect = true;
  2426. return;
  2427. }
  2428. if(shoulddoipban)
  2429. ipban(player, "AntiCheat(Nofall-multihack detection)");
  2430. AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for using NoFall Damage");
  2431. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Nofall-multihack detection)");
  2432. numberofbansnofalldamage++;
  2433. if(falldamageenabled)
  2434. {
  2435. returnallsetting(player);
  2436. }
  2437. return;
  2438. }
  2439. else
  2440. {
  2441.  
  2442. Resettestt(player.playerclient, player.laststring2);
  2443. player.hascompletednofallcheck = true;
  2444. undofixplayerhp(player);
  2445. }
  2446. }
  2447. Resettestt(player.playerclient, player.laststring2);
  2448. player.hascompletednofallcheck = true;
  2449. undofixplayerhp(player);
  2450. return;
  2451. }
  2452. var thisposition = player.playerclient.lastKnownPosition.y;
  2453. foreach (PlayerClient playerr in PlayerClient.All)
  2454. {
  2455. if(player != playerr)
  2456. {
  2457. var client = playerr.controllable;
  2458. player.playerclient.controllable.RelativeControlTo(client);
  2459.  
  2460. }
  2461. }
  2462. return;
  2463. /* var datatest = player.playerclient.instantiationTimeStamp;
  2464. var character = player.playerclient.controllable.CreateCCMotor();
  2465. Debug.Log(datatest);
  2466. return;
  2467. player.playerclient.controllable.ccmotor.minTimeBetweenJumps = 0.55f;
  2468. var character3 = player.playerclient.controllable.ccmotor.minTimeBetweenJumps;
  2469. Debug.Log(character3);
  2470. return;
  2471. Debug.Log(character);*/
  2472. }
  2473. void cleardatastore()
  2474. {
  2475. int count = 0;
  2476. foreach (KeyValuePair<string, object> pair in Info)
  2477. {
  2478. var currenttable = pair.Value as Dictionary<string, object>;
  2479. count++;
  2480. currenttable.Clear();
  2481. }
  2482. Debug.Log(count + " Data Objects Cleared !!!");
  2483. }
  2484. void OnServerInitialized()
  2485. {
  2486. LoadData();
  2487. SaveData();
  2488. cleardatastore();
  2489. management2 = RustServerManagement.Get();
  2490. InitializeTable();
  2491. }
  2492. public static InventoryItem GetCurrentEquippedItem(Character controller)
  2493. {
  2494. Inventory component = controller.GetComponent<Inventory>();
  2495. if ((object) component != (object) null && component.activeItem != null && (object) component.activeItem.datablock != (object) null)
  2496. return (InventoryItem) component.activeItem;
  2497. return (InventoryItem) null;
  2498. }
  2499. public static InventoryItem getfirstitem(Character controller)
  2500. {
  2501. Inventory component = controller.GetComponent<Inventory>();
  2502. if ((object) component != (object) null && component.firstItem != null && (object) component.firstItem.datablock != (object) null)
  2503. return (InventoryItem) component.firstItem;
  2504. return (InventoryItem) null;
  2505. }
  2506. public object GiveItem(Inventory inventory, string itemname, int amount, Inventory.Slot.Preference pref)
  2507. {
  2508.  
  2509. itemname = itemname.ToLower();
  2510. if (!displaynameToDataBlock.ContainsKey(itemname)) return false;
  2511. ItemDataBlock datablock = displaynameToDataBlock[itemname];
  2512. inventory.AddItemAmount(displaynameToDataBlock[itemname], amount, pref);
  2513. return true;
  2514. }
  2515. private void InitializeTable()
  2516. {
  2517. displaynameToDataBlock.Clear();
  2518. foreach (ItemDataBlock itemdef in DatablockDictionary.All)
  2519. {
  2520. displaynameToDataBlock.Add(itemdef.name.ToString().ToLower(), itemdef);
  2521. }
  2522. }
  2523. public static void norecoilcheck(PlayerHandler player)
  2524. {
  2525.  
  2526. if(!shouldchecknorecoil)
  2527. {
  2528. player.passednorecoiltest = true;
  2529. return;
  2530. }
  2531.  
  2532. player.nr++;
  2533. if(shouldbanforidle)
  2534. if(player.nr >= idletimetillban)
  2535. {
  2536. if(shoulddoipban)
  2537. ipban(player, "AntiCheat(idle time reached)");
  2538. AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for refusing test");
  2539. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "Max amount of AntiCheat(idle time reached)");
  2540. return;
  2541. }
  2542. if(!player.hasrefreshedinventorysettings)
  2543. {
  2544. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "config.load");
  2545. player.hasrefreshedinventorysettings = true;
  2546. return;
  2547. }
  2548. if(!player.hasceildcheck);
  2549. {
  2550. Resettestt2(player.playerclient, player.laststring2);
  2551. player.hasceildcheck = true;
  2552. }
  2553. var check = player.playerclient.controllable.stateFlags.flags;
  2554. if(check == null)
  2555. return;
  2556. if(player.playerclient.controllable == null)
  2557. return;
  2558. var eulerangles3 = new Angle2(89.9f, 9.2f);
  2559. var eulerangles = (Angle2)player.playerclient.controllable.eyesAngles;
  2560. if(eulerangles == eulerangles3)
  2561. return;
  2562. refreshrecoiltest(player);
  2563. if(check == menuscreenflag)
  2564. {
  2565. Resettestt2(player.playerclient, player.laststring2);
  2566. removeui(player);
  2567. return;
  2568. }
  2569. var language = Getplayerdatastore(player.language);
  2570. if(!language.ContainsKey("Dorecoiltest"))
  2571. {
  2572. return;
  2573. }
  2574. if(!language.ContainsKey("norecoiltestmsg"))
  2575. {
  2576. return;
  2577. }
  2578. var dorecoiltest = language["Dorecoiltest"].ToString();
  2579. var norecoilcheckmsg = language["norecoiltestmsg"].ToString();
  2580. Inventory inventory = player.playerclient.controllable.GetComponent<PlayerInventory>();
  2581. var inv = player.playerclient.rootControllable.idMain.GetComponent<Inventory>();
  2582. var firstitem = getfirstitem(player.playerclient.controllable.GetComponent<Character>());
  2583. Inventory.Slot.Preference pref2 = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Belt, false, Inventory.Slot.KindFlags.Belt);
  2584. IInventoryItem item2 = null;
  2585. var ppt = inv.GetItem(30, out item2);
  2586. //Facepunch.NetworkView networkView = inv.networkView;
  2587. //NetworkCullInfo info;
  2588. //NetworkCullInfo.Find((uLink.NetworkView) networkView, out info);
  2589. //ItemRepresentation itemRep = NetCull.InstantiatePiggyBackWithArgs<ItemRepresentation>(networkView.owner, info, test3.itemRepresentation.datablock._itemRepPrefab, networkView.transform.position, networkView.transform.rotation, new object[2]);
  2590. //Facepunch.NetworkView networkView = inventory.networkView;
  2591. //NetworkCullInfo info;
  2592. //NetworkCullInfo.Find((uLink.NetworkView) networkView, out info);
  2593. // ItemRepresentation itemRep = NetCull.InstantiatePiggyBackWithArgs<ItemRepresentation>(networkView.owner, info, test3.itemRepresentation.datablock._itemRepPrefab, networkView.transform.position, networkView.transform.rotation, new object[2]);
  2594. // new uLink.NetworkViewID?(test3.itemRepresentation.networkView.viewID)
  2595.  
  2596. //IHeldItem heldItem = inventory.activeItem as IHeldItem;
  2597. //heldItem.inventory.SetActiveItemManually(0, itemRep, new uLink.NetworkViewID?(test3.itemRepresentation.networkView.viewID));
  2598. //heldItem.OnActivate();
  2599. if(!player.hasremoveddefaultitem)
  2600. {
  2601. if(item2 != null)
  2602. {
  2603. player.datablocknull = true;
  2604. player.lastdatablock3 = item2.datablock;
  2605. player.lastinventoryitem = item2;
  2606. inventory.RemoveItem(30);
  2607. player.hasremoveddefaultitem = true;
  2608. return;
  2609. }
  2610. player.hasremoveddefaultitem = true;
  2611. }
  2612. if(!player.hasgivenweapon)
  2613. {
  2614. inv.AddItemAmount(displaynameToDataBlock["m4"], 1, pref2);
  2615. player.hasgivenweapon = true;
  2616. return;
  2617. }
  2618. var getcahcedbuletitem = GetCurrentEquippedItem(player.playerclient.controllable.GetComponent<Character>());
  2619. if(item2 != null)
  2620. {
  2621. var test3 = item2 as BulletWeaponItem<BulletWeaponDataBlock>;
  2622. if(test3 != null)
  2623. if(!player.hastakenoutweapon)
  2624. {
  2625. if(player.secondselect <= 3)
  2626. {
  2627. player.secondselect++;
  2628. inv.SetActiveItemManually(30, test3.itemRepresentation);
  2629. return;
  2630. }
  2631. inv.DeactivateItem();
  2632. player.hastakenoutweapon = true;
  2633. return;
  2634. }
  2635. }
  2636. InventoryItem item;
  2637. if(!player.hasgotengivenitem)
  2638. {
  2639. var p = inventory.FindItem("M4");
  2640. if(p == null)
  2641. {
  2642. return;
  2643. }
  2644. player.hasgotengivenitem = true;
  2645. player.savedweaponnumber = p.slot;
  2646. player.lastdatablock2 = p.datablock;
  2647. return;
  2648. if(firstitem == null)
  2649. return;
  2650. if(firstitem != null)
  2651. {
  2652.  
  2653. player.lastdatablock2 = firstitem.datablock;
  2654. player.hasgotengivenitem = true;
  2655. return;
  2656. }
  2657. }
  2658. if(!player.hastakenoutweapon)
  2659. {
  2660. player.hastakenoutweapon = true;
  2661. return;
  2662. return;
  2663. }
  2664. if(getcahcedbuletitem == null)
  2665. {
  2666. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + norecoilcheckmsg + "\"");
  2667. return;
  2668. }
  2669. getcahcedbuletitem.FireClientSideItemEvent(InventoryItem.ItemEvent.Used);
  2670. if(getcahcedbuletitem.slot != 30 || getcahcedbuletitem.datablock != displaynameToDataBlock["m4"])
  2671. {
  2672. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + norecoilcheckmsg + "\"");
  2673. return;
  2674. }
  2675. var g = getcahcedbuletitem.slot;
  2676. if(g == null)
  2677. {
  2678. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + norecoilcheckmsg + "\"");
  2679. return;
  2680. }
  2681.  
  2682. var test4 = inventory._activeItem as BulletWeaponItem<BulletWeaponDataBlock>;
  2683. if(!player.hasgivenammo)
  2684. if(test4 != null)
  2685. if(test4.clipAmmo <= 1)
  2686. {
  2687.  
  2688. Resettestt(player.playerclient, player.laststring2);
  2689. player.hasgivenammo = true;
  2690. test4.clipAmmo = 1000;
  2691. return;
  2692. player.lastclipammo = test4.clipAmmo.ToString();
  2693. player.lasteularangles = eulerangles.ToString();
  2694. test4.clipAmmo = 1000;
  2695. return;
  2696. }
  2697. if(!player.firstpasseular)
  2698. {
  2699. player.lasteularangles = eulerangles.ToString();
  2700. player.firstpasseular = true;
  2701. return;
  2702. }
  2703. if(!player.firstgetclimpammo)
  2704. if(test4.clipAmmo.ToString() != player.lastclipammo)
  2705. {
  2706. player.lastclipammo = test4.clipAmmo.ToString();
  2707. player.firstgetclimpammo = true;
  2708. return;
  2709. }
  2710. if(test4.clipAmmo.ToString() != player.lastclipammo)
  2711. {
  2712. if(player.lasteularangles == eulerangles.ToString())
  2713. {
  2714. if(shoulddoipban)
  2715. ipban(player, "AdminCompanion(no recoil)");
  2716. AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for using NoRecoil");
  2717. Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(no recoil)");
  2718. numberofbansnorecoil++;
  2719. return;
  2720. }
  2721. }
  2722.  
  2723. if(test4.clipAmmo.ToString() == player.lastclipammo)
  2724. {
  2725. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + dorecoiltest + "\"");
  2726. }
  2727. if(test4.clipAmmo.ToString() != player.lastclipammo)
  2728. if(player.lasteularangles != eulerangles.ToString())
  2729. {
  2730. inventory.RemoveItem(g);
  2731. if(player.datablocknull)
  2732. {
  2733. Inventory.Slot.Preference pref3 = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Belt, false, Inventory.Slot.KindFlags.Belt);
  2734. inv.AddItemAmount(player.lastdatablock3, 1, pref3);
  2735. IInventoryItem item3 = null;
  2736. var ppt2 = inv.GetItem(30, out item3);
  2737. if(item3 is BulletWeaponItem<BulletWeaponDataBlock>)
  2738. {
  2739.  
  2740. var finecheck1 = (item3 as BulletWeaponItem<BulletWeaponDataBlock>);
  2741. var finecheck2 = (player.lastinventoryitem as BulletWeaponItem<BulletWeaponDataBlock>);
  2742. var cd = ((IHeldItem) item3);
  2743. var cd2 = ((IHeldItem) player.lastinventoryitem);
  2744. cd.SetTotalModSlotCount(cd2.totalModSlots);
  2745. item3 = player.lastinventoryitem;
  2746. var count = cd2.itemMods.Length - 1;
  2747. int i = 0;
  2748. while(i < count)
  2749. {
  2750. var itemmod = cd2.itemMods[i];
  2751. cd.AddMod(itemmod);
  2752. i++;
  2753. }
  2754. finecheck1.SetCondition(finecheck2.condition);
  2755. finecheck1.clipAmmo = finecheck2.clipAmmo;
  2756. item3.AddUses(player.lastinventoryitem.uses);
  2757.  
  2758. }
  2759. }
  2760. player.passednorecoiltest = true;
  2761. ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "config.load");
  2762. Resettestt(player.playerclient, player.laststring2);
  2763. return;
  2764. }
  2765. player.firstgetclimpammo = false;
  2766. player.lastclipammo = test4.clipAmmo.ToString();
  2767. player.firstpasseular = false;
  2768. return;
  2769.  
  2770. ItemDataBlock datablock = displaynameToDataBlock["p250"];
  2771. var activeitem = inventory._activeItem;
  2772. Inventory.Slot.Preference pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Armor,false,Inventory.Slot.KindFlags.Belt);
  2773. if(displaynameToDataBlock["m4"] == null)
  2774. {
  2775. return;
  2776. }
  2777. inv.AddItemAmount(displaynameToDataBlock["mp5a4"], 2, pref);
  2778. inventory.AddItemAmount(displaynameToDataBlock["arrow"], 5, pref);
  2779. var test5 = displaynameToDataBlock["arrow"];
  2780. var test2 = displaynameToDataBlock["arrow"];
  2781. if (getcahcedbuletitem != null && getcahcedbuletitem is BulletWeaponItem<BulletWeaponDataBlock>)
  2782. {
  2783.  
  2784. var test = getcahcedbuletitem as BulletWeaponItem<BulletWeaponDataBlock>;
  2785. if(test == null)
  2786. return;
  2787. inventory.SetActiveItemManually(1, test.itemRepresentation);
  2788. test.datablock.maxClipAmmo = 1000;
  2789.  
  2790.  
  2791. test.itemRepresentation.Action(3, uLink.RPCMode.Owner);
  2792. test.datablock.recoilPitchMin = 0.0f;
  2793. test.datablock.recoilPitchMax = 0.0f;
  2794. test.datablock.recoilYawMin = 0.0f;
  2795. test.datablock.recoilYawMax = 0.0f;
  2796. test.datablock.aimSway = 0.0f;
  2797. test.datablock.aimSwaySpeed = 0.0f;
  2798. test.itemRepresentation.Action(3, uLink.RPCMode.Server);
  2799. test.itemRepresentation.Action(1, uLink.RPCMode.Server);
  2800. if (test.clipAmmo <= 100)
  2801. test.itemRepresentation.Action(3, uLink.RPCMode.Server);
  2802. }
  2803. if(getcahcedbuletitem.isInLocalInventory)
  2804. {
  2805. }
  2806. }
  2807. public bool Getplayerthroughmessage(NetUser netuser, string message)
  2808. {
  2809. return true;
  2810. }
  2811. public bool checklogforplayer(NetUser netUser, string message)
  2812. {
  2813. var realtime = UnityEngine.Time.realtimeSinceStartup;
  2814. SendReply(netUser, "at log players's");
  2815. var displayNamesas = PlayerClient.All.Select(pc => pc.netUser.displayName).ToList();
  2816. var displayNames = message.ToList();
  2817. displayNamesas.Sort();
  2818. StringBuilder sb = new StringBuilder(0 + 25);
  2819. int totalPlayersAdded = 0;
  2820. for (int i = 0; i < displayNames.Count; i++)
  2821. {
  2822. if (totalPlayersAdded < 1 && (sb.Length + displayNamesas[i].Length) < 1)
  2823. {
  2824. sb.Append(displayNames[i]);
  2825. totalPlayersAdded += 1;
  2826. }
  2827. if (totalPlayersAdded == 1)
  2828. {
  2829. rust.SendChatMessage(netUser, "chatname", sb.ToString().TrimEnd(' ', ','));
  2830. sb.Length = 0;
  2831. totalPlayersAdded = 0;
  2832. }
  2833. else if ((sb.Length + displayNamesas[i].Length) >= 0)
  2834. {
  2835. rust.SendChatMessage(netUser, "chatname", sb.ToString().TrimEnd(' ', ','));
  2836. sb.Length = 0;
  2837. totalPlayersAdded = 1;
  2838. sb.Append(displayNamesas[i]);
  2839. sb.Append(", ");
  2840. }
  2841. else
  2842. {
  2843. sb.Append(", ");
  2844. }
  2845. }
  2846. if (sb.Length > 0)
  2847. {
  2848. rust.SendChatMessage(netUser, sb.ToString().TrimEnd(' ', ','));
  2849. return true;
  2850. }
  2851. return true;
  2852. }
  2853. void OnPlayerDisconnected(uLink.NetworkPlayer netplayer)
  2854. {
  2855.  
  2856. PlayerClient player = ((NetUser)netplayer.GetLocalData()).playerClient;
  2857. if (hasAccess(player.netUser))
  2858. return;
  2859. PlayerHandler phandler = player.GetComponent<PlayerHandler>();
  2860. if(phandler != null)
  2861. {
  2862. }
  2863. var haschecked = Getplayerdatastore("AminCompanion(haschecked)");
  2864. if(haschecked.ContainsKey(player.userID.ToString()))
  2865. {
  2866. haschecked.Remove(player.userID.ToString());
  2867. }
  2868. if(shouldbanifplayerdcduringtest)
  2869. {
  2870. if(phandler != null)
  2871. {
  2872. if(shouldbepinglienient)
  2873. {
  2874. var ping = player.netUser.networkPlayer.averagePing;
  2875. if(ping != null)
  2876. if(ping >= pinglimitbeforeignore)
  2877. return;
  2878. }
  2879.  
  2880. numberofcheckevade++;
  2881. if(!BanList.Contains(player.userID))
  2882. AntiCheatBroadcastplayerr(player.userName + " Has been Banned for Check Evading");
  2883. if(!BanList.Contains(player.userID))
  2884. BanList.Add(player.userID, player.userName, "AdminCompanion(Disconnectduringtest)");
  2885.  
  2886. return;
  2887. }
  2888.  
  2889.  
  2890. }
  2891.  
  2892. }
  2893. void OnPlayerChat(NetUser netuser, string message)
  2894. {
  2895. if(message.Contains("love") && message.Contains("companion"))
  2896. SendReply(netuser, "I am just glad to help!");
  2897. PlayerHandler phandler = netuser.playerClient.GetComponent<PlayerHandler>();
  2898. if(shouldignore)
  2899. if(phandler != null)
  2900. if(!phandler.hasselectedlanguage)
  2901. if(phandler.numberoffakecalls >= numberoffakecallslmit)
  2902. {
  2903. SendReply(netuser, "will no longer take input from you you will have to use my english dictionary");
  2904. var data = Getplayerdatastore(netuser.playerClient.userID.ToString());
  2905. if(!data.ContainsKey("Language"))
  2906. data.Add("Language", "en");
  2907. phandler.forcefinish = true;
  2908. phandler.hasselectedlanguage = true;
  2909. return;
  2910. }
  2911. if(phandler != null)
  2912. if(!phandler.hasselectedlanguage)
  2913. {
  2914. phandler.detectionended = false;
  2915. GetcountryBytext(netuser, message.ToString());
  2916. return;
  2917. if(message.Contains("f2") || message.Contains("F5"))
  2918. if(message.Contains("test") && message.Contains("suck"))
  2919. SendReply(netuser, "ai admin is reading");
  2920. return;
  2921. }
  2922.  
  2923. if(message.Contains("hacker") || message.Contains("hacker".ToLower()) || message.Contains("hack".ToLower()))
  2924. {
  2925. if(!hascalled.ContainsKey(netuser.playerClient.userID.ToString()))
  2926. {
  2927. var message23 = ("hello I am an Auto-Admin system please type /report playername to report him/her he will need a total of " + numberofvotes + " votes");
  2928. rust.Notice(netuser, message23, icon, duration);
  2929. hascalled.Add(netuser.playerClient.userID.ToString(), "1");
  2930. return;
  2931. }
  2932.  
  2933. var totalhascalled = Convert.ToSingle(hascalled[netuser.playerClient.userID.ToString()]);
  2934. var newtotal = totalhascalled + 1f;
  2935. if(newtotal > 3)
  2936. return;
  2937. hascalled.Remove(netuser.playerClient.userID.ToString());
  2938. hascalled.Add(netuser.playerClient.userID.ToString(), newtotal.ToString());
  2939. totalhascalled++;
  2940. if(totalhascalled <= 3f )
  2941. {
  2942. var message2 = ("hello I am an Auto-Admin system please type /report playername to report him/her he will need a total of " + numberofvotes + " votes");
  2943. rust.Notice(netuser, message2, icon, duration);
  2944. }
  2945. }
  2946.  
  2947. return;
  2948. /*
  2949. var namereplace = netuser.playerClient.userName;
  2950. namereplace.Replace("check in name", namereplace);
  2951. namereplace = "changed name";
  2952. int index2 = message.IndexOf("c");
  2953. namereplace.Remove(index2, 1);
  2954.  
  2955. int index1 = message.IndexOf(" ");
  2956. SendReply(netuser, index1.ToString());
  2957. var result2 = message.Remove(index1, 1);
  2958. SendReply(netuser, result2.ToString());
  2959.  
  2960. int pFrom = message.IndexOf(" ");
  2961. int pTo = message.LastIndexOf(" ");
  2962.  
  2963. string result = message.Substring(pFrom, pTo - pFrom);
  2964. SendReply(netuser, result.ToString());
  2965.  
  2966.  
  2967. if(ischecking)
  2968. {
  2969. foreach (PlayerClient player in PlayerClient.All)
  2970. {
  2971.  
  2972. if(message.Contains(" "))
  2973. SendReply(netuser, "does contain space");
  2974. var message2 = message.ToList();
  2975. message2.Sort();
  2976.  
  2977.  
  2978. var test2 = message2[" ".Length];
  2979. SendReply(netuser, test2.ToString());
  2980. SendReply(netuser, "finished");
  2981. ischecking = false;
  2982. return;
  2983. checklogforplayer(netuser, message);
  2984. StringBuilder sb = new StringBuilder(0 + 25);
  2985. var testrad = message2[1];
  2986. SendReply(netuser, testrad.ToString());
  2987. return;
  2988. SendReply(netuser, message2.ToString());
  2989. var name = player.userName.ToString();
  2990. if(message.Contains(player.userName.ToString().ToLower()))
  2991. SendReply(netuser, "message22 contains");
  2992. SendReply(netuser, "message2 contains2");
  2993. return;
  2994.  
  2995.  
  2996.  
  2997.  
  2998. if(message.ToString().ToLower().Contains("copperbot"))
  2999. {
  3000. SendReply(netuser, "message contains lower");
  3001. }
  3002. if(name.Contains(message))
  3003. SendReply(netuser, "name contains message");
  3004.  
  3005. if(name.Contains(message.ToString().ToLower()))
  3006. SendReply(netuser, " this is the paired player");
  3007. if(message.ToString().Contains(name.ToLower()))
  3008. SendReply(netuser, "contians c1");
  3009. if(message.ToString().ToLower().Contains(name))
  3010. SendReply(netuser, "message contains c");
  3011. if(message.ToString().Contains(name) || message.ToString().ToLower().Contains(name) || message.Contains(name) || message.Contains(name.ToLower()))
  3012. SendReply(netuser, name.ToString() + " this is the paired player");
  3013. }
  3014. var msg2 = message;
  3015. var displayNames = PlayerClient.All.Select(pc => pc.netUser.displayName).ToList();
  3016. displayNames.Sort();
  3017. Debug.Log(displayNames);
  3018. var test7 = displayNames.ToString().ToLower();
  3019. if(message.Contains(test7))
  3020. SendReply(netuser, test7.ToString() + " this is the paired player");
  3021.  
  3022. var msg = message.Length;
  3023. rust.SendChatMessage(netuser, test7.Length.ToString());
  3024. SendReply(netuser, msg.ToString());
  3025. ischecking = false;
  3026. return;
  3027. NetUser targetuser = rust.FindPlayer(message);
  3028.  
  3029. var message1 = ("thank you this player has gotten 1 hack report i will check him if he has 10 " );
  3030. rust.Notice(netuser, message1, icon, duration);
  3031. }
  3032. if(message.Contains("hacker") || message.Contains("hacker".ToLower()) || message.Contains("hack".ToLower()))
  3033. {
  3034. ischecking = true;
  3035. var numberofplayers = PlayerClient.All.Count;
  3036. var percentage = (100 /numberofplayers * numberofpercentagevtoesbeforecheck);
  3037. SendReply(netuser, percentage.ToString() + " this is the percentage player");
  3038. var message2 = ("hello i am an auto-Admin system please type /report playername to report him/her he will need a total of");
  3039. rust.Notice(netuser, message2, icon, duration);
  3040. }*/
  3041. }
  3042.  
  3043. void IOnRecieveNetwork()
  3044. {
  3045. float now = Interface.Oxide.Now;
  3046. }
  3047. void dolanguage(NetUser netuser, string language)
  3048. {
  3049.  
  3050. var languagee = Getplayerdatastore(language);
  3051. var data = Getplayerdatastore(netuser.playerClient.userID.ToString());
  3052. PlayerHandler phandler = netuser.playerClient.GetComponent<PlayerHandler>();
  3053.  
  3054. if(languagee.ContainsKey("F2testmsg") && languagee.ContainsKey("speedjumptestmsg") && languagee.ContainsKey("nospreadtestmsg") && languagee.ContainsKey("Dorecoiltest") && languagee.ContainsKey("donotdcmessage") && languagee.ContainsKey("norecoiltestmsg"))
  3055. {
  3056. if(!data.ContainsKey("Language"))
  3057. data.Add("Language", language);
  3058. phandler.forcefinish = true;
  3059. phandler.hasselectedlanguage = true;
  3060. return;
  3061. }
  3062. var url1 = string.Format("http://mymemory.translated.net/api/get?q=thank%20you%20now%20press%20and%20hold%20F2%20on%20your%20keyboard%20please&langpair=en|" + language + "&de=" + Email);
  3063. var url2 = string.Format("http://mymemory.translated.net/api/get?q=jump speed please&langpair=en|" + language + "&de=" + Email);
  3064. var url3 = string.Format("http://mymemory.translated.net/api/get?q=do not move and take out the weapon i have placed in your inventory and shoot please&langpair=en|" + language + "&de=" + Email);
  3065. var url4 = string.Format("http://mymemory.translated.net/api/get?q=do not move and take out your weapon and Press and Hold C on your keyboard&langpair=en|" + language + "&de=" + Email);
  3066. var url5 = string.Format("http://mymemory.translated.net/api/get?q=please do not disconnect during this test &langpair=en|" + language + "&de=" + Email);
  3067. var url6 = string.Format("http://mymemory.translated.net/api/get?q=Shoot the weapon by pressing c&langpair=en|" + language + "&de=" + Email);
  3068. var url7 = string.Format("http://mymemory.translated.net/api/get?q=Thank you, you have finished all test completely&langpair=en|" + language + "&de=" + Email);
  3069. var url8 = string.Format("http://mymemory.translated.net/api/get?q=Please do not crouch during this test&langpair=en|" + language + "&de=" + Email);
  3070. var url9 = string.Format("https://translate.google.com.jm/?rlz=1C1PRFE_enJM668JM669&um=1&ie=UTF-8&hl=en&client=tw-ob#en/" + language + "/:thank%20you%20now%20press%20and%20hold%20F2%20on%20your%20keyboard%20please:");
  3071.  
  3072. Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url1, (code, response) =>
  3073. {
  3074.  
  3075. var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
  3076. var playervpnn2 = (jsonresponse2["responseData"]);
  3077. var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
  3078. var playervpn22 = (jsonresponse["translatedText"].ToString());
  3079. if(playervpn22.ToString().Contains("INVALID") || playervpn22.ToString().Contains("EXAMPLE") || !playervpn22.ToString().Contains("F2"))
  3080. {
  3081. if(shouldignore)
  3082. phandler.numberoffakecalls++;
  3083. return;
  3084. }
  3085. if(playervpn22.ToString() == "null")
  3086. {
  3087.  
  3088. if(!data.ContainsKey("Language"))
  3089. data.Add("Language", "en");
  3090. phandler.forcefinish = true;
  3091. phandler.hasselectedlanguage = true;
  3092. return;
  3093. }
  3094. if(!languagee.ContainsKey("F2testmsg"))
  3095. languagee.Add("F2testmsg", playervpn22);
  3096.  
  3097. }, this);
  3098. Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url2, (code, response) =>
  3099. {
  3100. var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
  3101. var playervpnn2 = (jsonresponse2["responseData"]);
  3102. var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
  3103. var playervpn22 = (jsonresponse["translatedText"].ToString());
  3104. if(playervpn22.ToString() == "null")
  3105. {
  3106.  
  3107. if(!data.ContainsKey("Language"))
  3108. data.Add("Language", "en");
  3109. phandler.forcefinish = true;
  3110. phandler.hasselectedlanguage = true;
  3111. return;
  3112. }
  3113. if(!languagee.ContainsKey("speedjumptestmsg"))
  3114. languagee.Add("speedjumptestmsg", playervpn22);
  3115. }, this);
  3116. Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url3, (code, response) =>
  3117. {
  3118. var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
  3119. var playervpnn2 = (jsonresponse2["responseData"]);
  3120. var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
  3121. var playervpn22 = (jsonresponse["translatedText"].ToString());
  3122. if(playervpn22.ToString() == "null")
  3123. {
  3124.  
  3125. if(!data.ContainsKey("Language"))
  3126. data.Add("Language", "en");
  3127. phandler.forcefinish = true;
  3128. phandler.hasselectedlanguage = true;
  3129. return;
  3130. }
  3131. if(!languagee.ContainsKey("norecoiltestmsg"))
  3132. languagee.Add("norecoiltestmsg", playervpn22);
  3133. }, this);
  3134. Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url4, (code, response) =>
  3135. {
  3136. var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
  3137. var playervpnn2 = (jsonresponse2["responseData"]);
  3138. var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
  3139. var playervpn22 = (jsonresponse["translatedText"].ToString());
  3140. if(playervpn22.ToString() == "null")
  3141. {
  3142.  
  3143. if(!data.ContainsKey("Language"))
  3144. data.Add("Language", "en");
  3145. phandler.forcefinish = true;
  3146. phandler.hasselectedlanguage = true;
  3147. return;
  3148. }
  3149. if(!languagee.ContainsKey("nospreadtestmsg"))
  3150. languagee.Add("nospreadtestmsg", playervpn22);
  3151. }, this);
  3152. Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url5, (code, response) =>
  3153. {
  3154.  
  3155. var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
  3156. var playervpnn2 = (jsonresponse2["responseData"]);
  3157. var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
  3158. var playervpn22 = (jsonresponse["translatedText"].ToString());
  3159. if(playervpn22.ToString() == "null")
  3160. {
  3161.  
  3162. if(!data.ContainsKey("Language"))
  3163. data.Add("Language", "en");
  3164. phandler.forcefinish = true;
  3165. phandler.hasselectedlanguage = true;
  3166. return;
  3167. }
  3168. if(!languagee.ContainsKey("donotdcmessage"))
  3169. languagee.Add("donotdcmessage", playervpn22);
  3170. }, this);
  3171. Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url6, (code, response) =>
  3172. {
  3173.  
  3174. var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
  3175. var playervpnn2 = (jsonresponse2["responseData"]);
  3176. var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
  3177. var playervpn22 = (jsonresponse["translatedText"].ToString());
  3178. if(playervpn22.ToString() == "null")
  3179. {
  3180.  
  3181. if(!data.ContainsKey("Language"))
  3182. data.Add("Language", "en");
  3183. phandler.forcefinish = true;
  3184. phandler.hasselectedlanguage = true;
  3185. return;
  3186. }
  3187. if(!languagee.ContainsKey("Dorecoiltest"))
  3188. languagee.Add("Dorecoiltest", playervpn22);
  3189. }, this);
  3190. Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url7, (code, response) =>
  3191. {
  3192.  
  3193. var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
  3194. var playervpnn2 = (jsonresponse2["responseData"]);
  3195. var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
  3196. var playervpn22 = (jsonresponse["translatedText"].ToString());
  3197. if(playervpn22.ToString() == "null")
  3198. {
  3199.  
  3200. if(!data.ContainsKey("Language"))
  3201. data.Add("Language", "en");
  3202. phandler.forcefinish = true;
  3203. phandler.hasselectedlanguage = true;
  3204. return;
  3205. }
  3206. if(!languagee.ContainsKey("Completedmsg"))
  3207. languagee.Add("Completedmsg", playervpn22);
  3208. }, this);
  3209. Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url8, (code, response) =>
  3210. {
  3211.  
  3212. var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
  3213. var playervpnn2 = (jsonresponse2["responseData"]);
  3214. var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
  3215. var playervpn22 = (jsonresponse["translatedText"].ToString());
  3216. if(playervpn22.ToString() == "null")
  3217. {
  3218.  
  3219. if(!data.ContainsKey("Language"))
  3220. data.Add("Language", "en");
  3221. phandler.forcefinish = true;
  3222. phandler.hasselectedlanguage = true;
  3223. return;
  3224. }
  3225. if(!languagee.ContainsKey("donotcrouchmsg"))
  3226. languagee.Add("donotcrouchmsg", playervpn22);
  3227. if(!data.ContainsKey("Language"))
  3228. data.Add("Language", language);
  3229. phandler.forcefinish = true;
  3230. phandler.hasselectedlanguage = true;
  3231. if(!languagee.ContainsKey("F2testmsg"))
  3232. languagee.Add("F2testmsg", playervpn22);
  3233. }, this);
  3234. if(!data.ContainsKey(netuser.playerClient.userID.ToString()))
  3235. data.Add(netuser.playerClient.userID.ToString(), language);
  3236. phandler.hasselectedlanguage = true;
  3237.  
  3238.  
  3239. }
  3240. void GetcountryBytext(NetUser netuser, string Message)
  3241. {
  3242. PlayerHandler phandler = netuser.playerClient.GetComponent<PlayerHandler>();
  3243. var url = string.Format("http://ws.detectlanguage.com/0.2/detect?q[]=" + Message + "&key=deac07df56b667691b986848135f58c4");
  3244. Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url, (code, response) =>
  3245. {
  3246.  
  3247. var testb = response.ToString();
  3248. int pFrom = testb.IndexOf("language");
  3249. int pTo = testb.LastIndexOf("isReliable");
  3250. string result = testb.Substring(pFrom, pTo - pFrom);
  3251. var index2 = result.IndexOf("language");
  3252. var result2 = result.Remove(index2, 10);
  3253. var index3 = result2.IndexOf(",");
  3254. var result3 = result2.Remove(index3, 2);
  3255. var index4 = result3.IndexOf('"');
  3256. var result4 = result3.Remove(index4, 1);
  3257. var index5 = result4.IndexOf('"');
  3258. var result5 = result4.Remove(index5, 1);
  3259. var data = Getplayerdatastore(netuser.playerClient.userID.ToString());
  3260. if(result5.ToString() == "en")
  3261. {
  3262. var defaultenglishlanguage = Getplayerdatastore("en");
  3263. if(!defaultenglishlanguage.ContainsKey("speedjumptestmsg"))
  3264. {
  3265. defaultenglishlanguage.Add("F2testmsg", "Please Hold F2");
  3266. defaultenglishlanguage.Add("speedjumptestmsg", "Jump fast please");
  3267. defaultenglishlanguage.Add("norecoiltestmsg", "Please take out the weapon we have placed in your inventory");
  3268. defaultenglishlanguage.Add("nospreadtestmsg", "take out your weapon and shoot that wall");
  3269. defaultenglishlanguage.Add("Completedmsg", "Thank you for your cooperation you have completed all test's ");
  3270. defaultenglishlanguage.Add("donotcrouchmsg", "Please do not crouch during this test");
  3271. defaultenglishlanguage.Add("donotdcmessage", "Please do not Disconnect during this test");
  3272. defaultenglishlanguage.Add("Dorecoiltest", "Please press and Hold c");
  3273. }
  3274. if(!data.ContainsKey("Language"))
  3275. data.Add("Language", "en");
  3276. phandler.hasselectedlanguage = true;
  3277. phandler.forcefinish = true;
  3278. return;
  3279. }
  3280.  
  3281. SendReply(netuser, result5);
  3282. if(data.ContainsKey("Language"))
  3283. {
  3284. phandler.hasselectedlanguage = true;
  3285. phandler.forcefinish = true;
  3286. return;
  3287. }
  3288. dolanguage(netuser, result5);
  3289. return;
  3290. var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
  3291. var playervpn = (jsonresponse["confidence:"].ToString());
  3292. SendReply(netuser, playervpn);
  3293. }, this);
  3294. }
  3295.  
  3296. public bool Getinterface(string playervpn)
  3297. {
  3298. var url1 = string.Format("http://mymemory.translated.net/api/get?q=thank%20you%20hold%20F5%20please&langpair=en|" + playervpn);
  3299. Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url1, (code, response) =>
  3300. {
  3301. var data = GetPlayerdata("AIAdmin(Lang.Log)");
  3302. var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
  3303. var playervpn22 = (jsonresponse["responseStatus"].ToString());
  3304. if(playervpn22.Contains("/"))
  3305. return;
  3306. if(playervpn22 == "403")
  3307. return;
  3308. data.Add(playervpn, playervpn2);
  3309. var playervpn2 = (jsonresponse["translation"].ToString());
  3310. if(!data.ContainsKey(playervpn))
  3311. return;
  3312. }, this);
  3313. return true;
  3314. }
  3315. }
  3316.  
  3317. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement