Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Reference: Facepunch.ID
- // Reference: Facepunch.MeshBatch
- // Reference: Google.ProtocolBuffers
- // Reference: Newtonsoft.Json
- using System.Collections.Generic;
- using System;
- using System.Reflection;
- using UnityEngine;
- using System.Data;
- using Facepunch;
- using uLink;
- // Reference: Facepunch.Cursor
- using Oxide.Core;
- using Oxide.Core.Plugins;
- using RustProto;
- using Oxide.Core;
- using System.Text.RegularExpressions;
- using Newtonsoft.Json;
- using Google.ProtocolBuffers;
- using Google.ProtocolBuffers.Collections;
- using Google.ProtocolBuffers.Descriptors;
- using Google.ProtocolBuffers.FieldAccess;
- using System.Collections.Generic;
- using Oxide.Core.Libraries;
- using System.Linq;
- using System.Text;
- using uLink;
- using Facepunch;
- using Rust;
- using InventoryExtensions;
- using Facepunch.Cursor;
- using Facepunch.Cursor.Internal;
- namespace Oxide.Plugins
- {
- [Info("AdminCompanion - devcheck v3", "copper", "2.1.3")]
- class AdminCompanion : RustLegacyPlugin
- {
- private static Core.Configuration.DynamicConfigFile Ipban;
- public bool hasrefreshedplugin;
- public static float gg;
- string cachedReason;
- string cachedName;
- public static GameObject Load;
- public static int numberofbansdizzy;
- public static int reportnum;
- public static int numberofbansjacked;
- public static int numberofbanssteven;
- public static int numberofbansnorecoil;
- public static int numberofbansnofalldamage;
- public static int numberofcheckevade;
- public static int numberofspeedjumpban;
- public static bool shouldsendstatisticstoadminonconnect = true;
- NetUser cachedUser;
- string cachedSteamid;
- public Type BanType;
- public FieldInfo steamid;
- public FieldInfo username;
- public FieldInfo reason;
- public FieldInfo bannedUsers;
- static int terrainLayerr;
- Vector3 VectorUp = new Vector3(0f, 1f, 0f);
- Vector3 VectorDown = new Vector3(0f, -0.4f, 0f);
- Vector3 VectorDownn = new Vector3(0f, -0.1f, 0f);
- public static Vector3 Vector3Down = new Vector3(0f,-1f,0f);
- public static Vector3 Vector3Down2 = new Vector3(0f,-3f,0f);
- public static Vector3 Vector3Up = new Vector3(0f, 1f, 0f);
- public static Vector3 UnderPlayerAdjustement = new Vector3(0f, -1.15f, 0f);
- public static Vector3 UnderPlayerAdjustement2 = new Vector3(0f, -1.16f, 0f);
- public static RustServerManagement management2;
- public static Vector3 vectorup2 = new Vector3(0f, 1f, 0f);
- int terrainLayer;
- public static float distanceDown = 10f;
- public static RaycastHit cachedRaycasttt;
- private static Dictionary<string, ItemDataBlock> displaynameToDataBlock = new Dictionary<string, ItemDataBlock>();
- public Dictionary<string, string> hascalled = new Dictionary<string, string>();
- public static string laststring;
- public static bool finishedcheck1;
- public static bool finishedcheck2;
- public static bool finishedcheck3;
- public static JsonSerializerSettings jsonsettings;
- private Core.Configuration.DynamicConfigFile Data;
- private static Core.Configuration.DynamicConfigFile Datablock;
- private static Core.Configuration.DynamicConfigFile Info;
- private static Core.Configuration.DynamicConfigFile DataStore;
- public static RaycastHit cachedRaycastttt;
- Dictionary<string, object> GetPlayerdata(string userid)
- {
- if (Data[userid] == null)
- Data[userid] = new Dictionary<string, object>();
- return Data[userid] as Dictionary<string, object>;
- }
- static Dictionary<string, ItemDataBlock> Getdatablock(string userid)
- {
- if (Datablock[userid] == null)
- Datablock[userid] = new Dictionary<string, ItemDataBlock>();
- return Datablock[userid] as Dictionary<string, ItemDataBlock>;
- }
- Dictionary<string, object> GetPlayeinfo(string userid)
- {
- if (Info[userid] == null)
- Info[userid] = new Dictionary<string, object>();
- return Info[userid] as Dictionary<string, object>;
- }
- static Dictionary<string, object> Getplayerdatastore(string userid)
- {
- if (DataStore[userid] == null)
- DataStore[userid] = new Dictionary<string, object>();
- return DataStore[userid] as Dictionary<string, object>;
- }
- 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))");}
- void SaveData() { Interface.GetMod().DataFileSystem.SaveDatafile("AIAdmin(pl)"); Interface.GetMod().DataFileSystem.SaveDatafile("AdminCompanion(DataStore(pl))"); Interface.GetMod().DataFileSystem.SaveDatafile("AdminCompanion(Datablock(pl))");}
- void Unload()
- {
- SaveData();
- var objects = GameObject.FindObjectsOfType(typeof(PlayerHandler));
- var objects2 = GameObject.FindObjectsOfType(typeof(PlayerHandlerflagcheck));
- if (objects != null)
- foreach (var gameObj in objects)
- {
- GameObject.Destroy(gameObj);
- }
- if (objects2 != null)
- foreach (var gameObj2 in objects)
- {
- GameObject.Destroy(gameObj2);
- }
- }
- public bool timerallowed;
- public bool ischecking = false;
- public static bool shouldlogwhoputstuffin = false;
- public static bool shoulddoipban = true;
- public static bool shouldbepinglienient = true;
- public static int pinglimitbeforeignore = 380;
- public static int ismovingflag = 6208;
- public static bool shouldbanforidle = true;
- public static float idletimetillban = 330f;
- public static int numberoffakecallslmit = 5;
- public static bool shouldchecknorecoil = false;
- public static bool shouldcheckjacked = false;
- public static bool shouldchecksteven = true;
- public static bool shouldcheckdizzy = true;
- public static bool shouldcheckjumpspeed = true;
- public static bool shouldcheckhackmenu = true;
- public static bool shouldchecknofall = true;
- public static bool shouldcheckforspeedjump = true;
- public static bool shoulduseplayerdatabase = false;
- public static bool shouldogwhotakestuffout = true;
- public static bool shouldlogfurnace = true;
- public static bool shouldbanforitmingjumps = true;
- public static string icon = "★";
- public static float duration = 10.0f;
- public static float numberofvotes = 3.0f;
- public static float idletimetillautoseectlanguage = 60f;
- public static int numberoftimedjumpdettectionsbeforeban = 5;
- public static int numberofpercentagevtoesbeforecheck = 50;
- public static int maxammoutnoflanguagerefreshbeforeignore = 3;
- public static bool shouldbanifplayerdcduringtest = true;
- public static bool shouldresetdetectionwhenplayerdisconnects = true;
- public static bool shouldcheckonce = true;
- public static bool shouldcheckplayeroncewhenconnect = false;
- public static bool shouldcheckplayerwhenfirstconnect = false;
- public static bool shouldsendprobablybanevadetoadmin = true;
- public static bool shouldkicknoname = true;
- public static bool allowlanguagerefresh = true;
- public static bool shouldcheckplayerswithpermisions = true;
- public static bool shoulduseenglishdictionaryonly = false;
- public static bool shouldautoselectlagnuageifplayeridl = true;
- public static bool shouldcheckmultinofall = true;
- public static bool falldamageenabled = false;
- public static bool shouldallowtestresetifdisconnected = true;
- public static bool smartcheck = true;
- public static int menuscreenflag = 128;
- public static int crouchdetetctionsecondflagcheck = 6145;
- public static int crouchmovedetectionflagcheck = 6209;
- public static bool shouldignore = true;
- public static string Email = "enteryouremailisneeded@gmail.com";
- void LoadDefaultConfig() { }
- private void CheckCfg<T>(string Key, ref T var)
- {
- if (Config[Key] is T)
- var = (T)Config[Key];
- else
- Config[Key] = var;
- }
- void LoadDefaultMessages()
- {
- var messages = new Dictionary<string, string>
- {
- {"Prefix", "AntiCheat"},
- {"TestWarning", "[color red]During test only press buttons as directed."},
- {"TestWarningAltTab", "[color cyan]Alt+tabbing [color red]or pressing [color cyan]F1 [color red]will result in a ban during the test."},
- {"TargetVitals", "Your targets vitals are:"}
- };
- lang.RegisterMessages(messages, this);
- }
- void Init()
- {
- CheckCfg<string>("Messages: Icon", ref icon);
- CheckCfg<bool>("Messages: should do ping exception", ref shouldbepinglienient);
- CheckCfg<bool>("Messages: Should check JackeD", ref shouldcheckjacked);
- CheckCfg<bool>("Messages: Should check Dizzy Hack", ref shouldcheckdizzy);
- CheckCfg<bool>("Messages: should check Steven Hack", ref shouldchecksteven);
- CheckCfg<bool>("Messages: should do ip ban", ref shoulddoipban);
- CheckCfg<int>("Messages: Ping Exception", ref pinglimitbeforeignore);
- CheckCfg<int>("Messages: crouch Detection State Flag", ref crouchmovedetectionflagcheck);
- CheckCfg<int>("Messages: Crouch Detcetion Exploit", ref crouchdetetctionsecondflagcheck);
- CheckCfg<int>("Messages: Menu Screen Flag", ref menuscreenflag);
- CheckCfg<bool>("Messages: should ignore player if fake language detected", ref shouldignore);
- CheckCfg<int>("Messages: number of fake language dettection before ignore", ref numberoffakecallslmit);
- CheckCfg<string>("Messages: Enter a valid email to enable the api's full potential", ref Email);
- CheckCfg<bool>("Messages: Should smart check(check players whos name's are in the banlist?)", ref smartcheck);
- CheckCfg<float>("Messages: Maximum amount of votes needed beforce check", ref numberofvotes);
- CheckCfg<float>("Messages: idle time till auto select language", ref idletimetillautoseectlanguage);
- CheckCfg<bool>("Messages: should ban for idle ?", ref shouldbanforidle);
- CheckCfg<float>("Messages: message duraton", ref duration);
- CheckCfg<int>("Messages: number of percentage of votes before check ", ref numberofpercentagevtoesbeforecheck);
- CheckCfg<float>("Messages: idle time till ban ", ref idletimetillban);
- CheckCfg<int>("Messages: Max amount of language resset before ignore ", ref maxammoutnoflanguagerefreshbeforeignore);
- CheckCfg<bool>("Messages: should check for speed jump? ", ref shouldcheckjumpspeed);
- CheckCfg<bool>("Messages: should check Players with permision's on conenct? ", ref shouldcheckplayerswithpermisions);
- CheckCfg<bool>("Messages: Allow Language refresh? ", ref allowlanguagerefresh);
- CheckCfg<bool>("Messages: should kick noname?? ", ref shouldkicknoname);
- CheckCfg<bool>("Messages: should send probably ban evade to chat? ", ref shouldsendprobablybanevadetoadmin);
- CheckCfg<bool>("Messages: should checkplayer once ? this will check the player one time when he/she connects unless votechecked or force checked ", ref shouldcheckplayeroncewhenconnect);
- CheckCfg<bool>("Messages: should checkplayer when first connect? ", ref shouldcheckplayerwhenfirstconnect);
- CheckCfg<bool>("Messages: shouldcheck once when voted? ", ref shouldcheckonce);
- CheckCfg<bool>("Messages: should reset dettection when playr disconnects? ", ref shouldresetdetectionwhenplayerdisconnects);
- CheckCfg<bool>("Messages: should ban if player dc during test? ", ref shouldbanifplayerdcduringtest);
- CheckCfg<bool>("Messages: should check for no fall? ", ref shouldchecknofall);
- CheckCfg<int>("Messages: number of timed jump dettections before ban? ", ref numberoftimedjumpdettectionsbeforeban);
- CheckCfg<bool>("Messages: should check for hack menu? ", ref shouldcheckhackmenu);
- CheckCfg<bool>("Messages: shouldcheck for no recoil? ", ref shouldchecknorecoil);
- CheckCfg<bool>("Messages: should ban for timing jump's? ", ref shouldbanforitmingjumps);
- CheckCfg<bool>("Messages: should use english dictionary only? ", ref shoulduseenglishdictionaryonly);
- CheckCfg<bool>("Messages: should auto select english language if player is idle? ", ref shouldautoselectlagnuageifplayeridl);
- CheckCfg<bool>("Messages: should send statistic's to admins/mods on connect? ", ref shouldsendstatisticstoadminonconnect);
- 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);
- CheckCfg<bool>("Messages: do you have falldamage enabled on youur server?", ref falldamageenabled);
- CheckCfg<bool>("Messages: should alllow report resset if disconnected fromt the server?", ref shouldallowtestresetifdisconnected);
- SaveConfig();
- }
- static Dictionary<string, object> Getipban(string userid)
- {
- if (Ipban[userid] == null)
- Ipban[userid] = new Dictionary<string, object>();
- return Ipban[userid] as Dictionary<string, object>;
- }
- public static void ipban(PlayerHandler player, string reason)
- {
- if(shoulddoipban)
- {
- var ip = player.playerclient.netUser.networkPlayer.externalIP.ToString();
- var name = player.playerclient.userName;
- var GetPlayerdata = Getipban("Blacklist(ip)");
- if(!GetPlayerdata.ContainsKey(ip))
- GetPlayerdata.Add(ip, name + " Reason : " + reason);
- }
- }
- void Loaded()
- {
- LoadDefaultMessages();
- LoadData();
- SaveData();
- if (!permission.PermissionExists("AdminCompanion.Companion")) permission.RegisterPermission("AdminCompanion.Companion", this);
- terrainLayer = LayerMask.GetMask(new string[] { "Terrain" });
- terrainLayerr = LayerMask.GetMask(new string[] { "Static" });
- management2 = RustServerManagement.Get();
- InitializeTable();
- BanType = typeof(BanList).GetNestedType("Ban", BindingFlags.Instance | BindingFlags.NonPublic);
- steamid = BanType.GetField("steamid");
- username = BanType.GetField("username");
- reason = BanType.GetField("reason");
- bannedUsers = typeof(BanList).GetField("bannedUsers", (BindingFlags.Static | BindingFlags.NonPublic));
- }
- bool hasAccess(NetUser netuser)
- {
- if (netuser.CanAdmin())
- return true;
- return permission.UserHasPermission(netuser.playerClient.userID.ToString(), "AdminCompanion.Companion");
- }
- public static void refreshrecoiltest(PlayerHandler player)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "input.bind Fire c c");
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "input.mousespeed 0");
- return;
- }
- [ChatCommand("aisafezone")]
- void cmdChatsavezone(NetUser netuser, string command, string[] args)
- {
- if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AdminCompanion", "you are not allowed to use this command"); return; }
- var loc = Getplayerdatastore("SafeZone");
- if(loc.ContainsKey("x"))
- {
- DataStore["SafeZone"] = null;
- rust.SendChatMessage(netuser, "AdminCompanion", "you have removed the current TestZone");
- return;
- }
- loc.Add("x", netuser.playerClient.lastKnownPosition.x);
- loc.Add("y", netuser.playerClient.lastKnownPosition.y);
- loc.Add("z", netuser.playerClient.lastKnownPosition.z);
- rust.SendChatMessage(netuser, "AdminCompanion", "you have added your current location as a TestZone");
- }
- [ChatCommand("airefresh")]
- void cmdChatrefreshalllanguage(NetUser netuser, string command, string[] args)
- {
- if(!allowlanguagerefresh)
- {
- rust.SendChatMessage(netuser, "AdminCompanion", "This command is disabled");
- return;
- }
- var datastore = GetPlayeinfo(netuser.playerClient.userID.ToString());
- if(!datastore.ContainsKey("RefreshCount"))
- {
- datastore.Add("RefreshCount", 1);
- }
- var currentdatastore = Convert.ToSingle(datastore["RefreshCount"]);
- if(currentdatastore >= maxammoutnoflanguagerefreshbeforeignore)
- {
- rust.SendChatMessage(netuser, "AdminCompanion", "you cannot use this command as you have exceeded the amount of refreshes that is allowed");
- return;
- }
- PlayerHandler phandler = netuser.playerClient.GetComponent<PlayerHandler>();
- if(phandler != null)
- {
- rust.SendChatMessage(netuser, "AdminCompanion", "you cannot Refresh your language while being tested");
- return;
- }
- currentdatastore++;
- var datastore2 = Getplayerdatastore(netuser.playerClient.userID.ToString());
- if(datastore2.ContainsKey("Language"))
- {
- datastore2.Remove("Language");
- rust.SendChatMessage(netuser, "AdminCompanion", "your previously selected language has been removed");
- return;
- }
- rust.SendChatMessage(netuser, "AdminCompanion", "your previously selected language has already been removed");
- return;
- }
- [ChatCommand("aipromote")]
- void cmdChatpromotepl(NetUser netuser, string command, string[] args)
- {
- if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AdminCompanion", "you are not allowed to use this command"); return; }
- if (args.Length != 1)
- {
- rust.SendChatMessage(netuser, "AdminCompanion", "wrong syntax: /airpromote 'playername < must be precise");
- return;
- }
- var hasacess = GetPlayerdata("Flags(pl)");
- NetUser targetuser = rust.FindPlayer(args[0]);
- if(hasacess.ContainsKey(targetuser.userID.ToString()))
- {
- rust.SendChatMessage(netuser, "AdminCompanion", targetuser.displayName + " has already been added to the AdminCompanion Associate's list");
- return;
- }
- hasacess.Add(targetuser.userID.ToString(), true);
- return;
- }
- [ChatCommand("aidemote")]
- void cmdChatdemotepl(NetUser netuser, string command, string[] args)
- {
- if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AdminCompanion", "you are not allowed to use this command"); return; }
- if (args.Length != 1)
- {
- rust.SendChatMessage(netuser, "AdminCompanion", "wrong syntax: /aidemote 'playername < must be precise");
- return;
- }
- var hasacess = GetPlayerdata("Flags(pl)");
- NetUser targetuser = rust.FindPlayer(args[0]);
- if(!hasacess.ContainsKey(targetuser.userID.ToString()))
- {
- rust.SendChatMessage(netuser, "AdminCompanion", targetuser.displayName + " has already been Removed to the Companion list");
- return;
- }
- rust.SendChatMessage(netuser, "AdminCompanion", targetuser.displayName + " has been Removed from the Companion list");
- hasacess.Remove(targetuser.userID.ToString());
- return;
- }
- [ChatCommand("aiforceremovelang")]
- void cmdChatforcermeovedictionary(NetUser netuser, string command, string[] args)
- {
- if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AdminCompanion", "you are not allowed to use this command"); return; }
- if (args.Length != 1)
- {
- rust.SendChatMessage(netuser, "AdminCompanion", "wrong syntax: /aiforceremovelang 'language prefix < must be precise");
- return;
- }
- if(DataStore[args[0].ToString()] == null)
- {
- rust.SendChatMessage(netuser, "AdminCompanion", "The dictionary has already been removed for " + args[0].ToString());
- return;
- }
- DataStore[args[0].ToString()] = null;
- SaveData();
- rust.SendChatMessage(netuser, "AdminCompanion", "you have removed the language dictionary for " + args[0].ToString());
- return;
- }
- [ChatCommand("reportrules")]
- void cmdReportRules(NetUser netuser, string command, string[] args)
- {
- rust.SendChatMessage(netuser, "AntiCheat", "[color orange]Abuse of this system will result in an irreversible ban.");
- rust.SendChatMessage(netuser, "AntiCheat", "- Keep in mind that there are always going to be people better than you.");
- rust.SendChatMessage(netuser, "AntiCheat", "- If you feel someone is hacking, /report them and after their test, if they");
- rust.SendChatMessage(netuser, "AntiCheat", "pass move on. If your still suspicious message an admin and we will look into it.");
- 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");
- rust.SendChatMessage(netuser, "AntiCheat", "first how many times you've reported people, and second how many times you've");
- rust.SendChatMessage(netuser, "AntiCheat", "reported a particular individual.");
- }
- public bool isvalidtest(string x)
- {
- if(x.ToString() == "stevenmenu" || x.ToString() == "dizzy" || x.ToString() == "a3mon" || x.ToString() == "drop" || x.ToString() == "jacked")
- return true;
- return false;
- }
- [ChatCommand("run")]
- void cmdRun(NetUser netuser, string command, string[] args)
- {
- if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AntiCheat", "you are not allowed to use this command"); return; }
- else if (args.Length != 2)
- {
- rust.SendChatMessage(netuser, "AntiCheat", "Incorrect syntax: Use /run 'user' 'test'");
- }
- else
- {
- if(!isvalidtest(args[1].ToString()))
- return;
- NetUser targetuser = rust.FindPlayer(args[0]);
- string userid = targetuser.playerClient.userID.ToString();
- string net = targetuser.userID.ToString();
- if (targetuser != null)
- {
- PlayerHandler player = targetuser.playerClient.GetComponent<PlayerHandler>();
- if (player != null)
- {
- rust.SendChatMessage(netuser, "AntiCheat", "already running a test on color yellow]" + targetuser.displayName);
- return;
- }
- player = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>();
- var character = targetuser.playerClient.rootControllable.GetComponent<Character>();
- if (args[1] == "stevenmenu")
- {
- player.finisheddizzycheck = true;
- player.finishedjackedcheck = true;
- player.hascompletednofallcheck = true;
- player.passedjumptest = true;
- player.passednorecoiltest = true;
- player.StartCheck();
- rust.SendChatMessage(netuser, "AntiCheat", "Running test 'Steven Menu' on [color yellow]" + targetuser.displayName);
- }
- else if (args[1] == "a3mon")
- {
- player.finishedstevencheck = true;
- player.finishedjackedcheck = true;
- player.hascompletednofallcheck = true;
- player.passedjumptest = true;
- player.passednorecoiltest = true;
- player.StartCheck();
- rust.SendChatMessage(netuser, "AntiCheat", "Running test 'A3mon' on [color yellow]" + targetuser.displayName);
- }
- else if (args[1] == "jacked")
- {
- player.finishedstevencheck = true;
- player.finisheddizzycheck = true;
- player.hascompletednofallcheck = true;
- player.passedjumptest = true;
- player.passednorecoiltest = true;
- player.StartCheck();
- rust.SendChatMessage(netuser, "AntiCheat", "Running test 'A3mon' on [color yellow]" + targetuser.displayName);
- }
- else if (args[1] == "dizzy")
- {
- rust.SendChatMessage(netuser, "AntiCheat", "Running test 'Dizzy Client' on [color yellow]" + targetuser.displayName);
- }
- else if (args[1] == "drop")
- {
- player.finishedstevencheck = true;
- player.finishedjackedcheck = true;
- player.finisheddizzycheck = true;
- player.passedjumptest = true;
- player.passednorecoiltest = true;
- player.StartCheck();
- rust.SendChatMessage(netuser, "AntiCheat", "Running test 'Drop Test' on [color yellow]" + targetuser.displayName);
- }
- else
- {
- rust.SendChatMessage(netuser, "AntiCheat", "The test [color orange]" + args[1] + " [color white]does not exist");
- }
- }
- }
- }
- [ChatCommand("system")]
- void cmdSystem(NetUser netuser, string command, string[] args)
- {
- PlayerHandler player = netuser.playerClient.GetComponent<PlayerHandler>();
- if (player == null)
- {
- SendReply(netuser, "You are not currently being tested");
- }
- else if (args.Length != 1)
- {
- rust.SendChatMessage(netuser, "AntiCheat", "Wrong syntax: Use /system 'pc' or /system 'mac'");
- }
- else if (args[0].ToString().ToLower() == "pc")
- {
- player.system = "pc";
- rust.SendChatMessage(netuser, "AntiCheat", "You have chosen your system as: [color yellow]" + args[0]);
- }
- else if (args[0].ToString().ToLower() == "mac")
- {
- player.system = "mac";
- rust.SendChatMessage(netuser, "AntiCheat", "You have chosen your system as: [color yellow]" + args[0]);
- }
- }
- [ChatCommand("report")]
- void cmdChatProdwholootedd(NetUser netuser, string command, string[] args)
- {
- if (args.Length == 0 )
- {
- rust.SendChatMessage(netuser, "AntiCheat", "wrong syntax: /report 'playername < must be precise");
- return;
- }
- cachedName = string.Empty;
- cachedReason = string.Empty;
- if (args.Length > 1)
- {
- if (cachedName == string.Empty)
- {
- cachedName = args[1];
- if (args.Length > 2)
- {
- cachedReason = args[2];
- }
- else
- {
- cachedReason = args[1];
- }
- }
- }
- cachedReason += "(" + netuser.displayName + ")";
- NetUser targetuser = rust.FindPlayer(args[0]);
- if(targetuser == null)
- {
- rust.SendChatMessage(netuser, "AdminCompanion", "there is no players found with that name");
- return;
- }
- var haschecked = Getplayerdatastore("AdminCompanion(haschecked)");
- if(shouldcheckonce)
- {
- if(haschecked.ContainsKey(targetuser.playerClient.userID.ToString()))
- {
- rust.SendChatMessage(netuser, "AdminCompanion", "I am sorry I was told not to check players twice");
- return;
- }
- }
- var newdata = GetPlayeinfo(targetuser.playerClient.userID.ToString());
- var newdata2 = GetPlayeinfo("Reporteddata");
- if(newdata.ContainsKey(netuser.playerClient.userID.ToString()))
- {
- var newdatacount2 = Convert.ToSingle(newdata["Reportspl"]);
- rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
- rust.SendChatMessage(netuser, "AntiCheat", "[color yellow]" + targetuser.displayName + " [color white] he needs a total of : [color orange]" + newdatacount2 + "/" + numberofvotes + " [color white]reports.");
- rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
- rust.SendChatMessage(netuser, "AntiCheat", "You have already reported [color yellow]" + targetuser.displayName + "[color white]!");
- rust.SendChatMessage(netuser, "AntiCheat", "[color red]Intentional abuse of this plugin will result in a ban.");
- rust.SendChatMessage(netuser, "AntiCheat", "Use /reportrules if you have questions!");
- return;
- rust.SendChatMessage(netuser, "AdminCompanion", "You have already voted to check " + targetuser.playerClient.userName);
- return;
- }
- if(!newdata.ContainsKey("Reportspl"))
- {
- reportnum++;
- newdata.Add("Reportspl", 1f);
- timer.Once((float)300 , () => newdata.Remove("Reportspl".ToString()));
- if(!newdata.ContainsKey(netuser.playerClient.userID.ToString()))
- {
- timer.Once((float)300 , () => newdata.Remove(netuser.playerClient.userID.ToString()));
- newdata.Add(netuser.playerClient.userID.ToString(), cachedReason);
- }
- var text = Convert.ToSingle(newdata["Reportspl"]);
- if(text >= numberofvotes)
- {
- AntiCheatBroadcastplayerr(targetuser.displayName + " is now being checked for hacks");
- targetuser.playerClient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
- PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
- if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
- timer.Once(0.1f, () => phandler.StartCheck());
- rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " is now being checked for hacks");
- rust.Notice(targetuser, targetuser.displayName + " You are now being tested for hacks do as you are told");
- rust.RunClientCommand(targetuser, "config.save");
- rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
- rust.RunClientCommand(targetuser, "input.bind Up F2 F2");
- rust.RunClientCommand(targetuser, "input.bind Down F2 F2");
- rust.RunClientCommand(targetuser, "input.bind Left " + "t" + " " + "t");
- rust.RunClientCommand(targetuser, "input.bind Up " + "t" + " " + "t");
- rust.RunClientCommand(targetuser, "input.bind Duck " + "t" + " " + "t");
- rust.SendChatMessage(netuser, "AntiCheat", "this player will be checked for hacks shortly");
- rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " will be checked shortley");
- haschecked.Add(targetuser.playerClient.userID.ToString(), targetuser.displayName);
- if(!newdata.ContainsKey("numberoftimeschecked"))
- {
- newdata.Add("numberoftimeschecked", 1);
- }
- if(!newdata.ContainsKey(netuser.playerClient.userID.ToString()))
- {
- timer.Once((float)300 , () => newdata.Remove(netuser.playerClient.userID.ToString()));
- newdata.Add(netuser.playerClient.userID.ToString(), cachedReason);
- }
- var datecheckadd = Convert.ToSingle(newdata["numberoftimeschecked"]);
- datecheckadd++;
- }
- rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
- rust.SendChatMessage(netuser, "AntiCheat", "[color yellow]" + targetuser.displayName + " [color white] he needs a total of : [color orange]" + 1 + "/" + numberofvotes + " [color white]reports.");
- rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
- rust.Notice(netuser, "Successfully reported player: " + targetuser.displayName + " Email any video proof to Getdrabbed@gmail.com");
- 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");
- return;
- var tallyy2 = PlayerClient.All.Count;
- var newdatacount2 = Convert.ToSingle(newdata["Reportspl"]);
- var enhanced2 = (tallyy2/newdatacount2 * 100);
- var percentageleftt = (50 - enhanced2);
- if(percentageleftt <= 0)
- {
- targetuser.playerClient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
- PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
- if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
- timer.Once(0.1f, () => phandler.StartCheck());
- rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " [color orange]is now being tested");
- rust.RunClientCommand(targetuser, "config.save");
- rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
- rust.RunClientCommand(targetuser, "input.bind Up F2 F2");
- rust.RunClientCommand(targetuser, "input.bind Down F2 F2");
- rust.RunClientCommand(targetuser, "input.bind Left " + "t" + " " + "t");
- rust.RunClientCommand(targetuser, "input.bind Up " + "t" + " " + "t");
- rust.RunClientCommand(targetuser, "input.bind Duck " + "t" + " " + "t");
- rust.SendChatMessage(netuser, "AntiCheat", "this player will be checked for hacks shortly");
- rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " will be checked shortley");
- haschecked.Add(targetuser.playerClient.userID.ToString(), targetuser.displayName);
- if(!newdata.ContainsKey("numberoftimeschecked"))
- {
- newdata.Add("numberoftimeschecked", 1);
- return;
- }
- if(!newdata2.ContainsKey(netuser.playerClient.userID.ToString()))
- {
- newdata2.Add(netuser.playerClient.userID.ToString(), cachedReason);
- }
- var datecheckadd = Convert.ToSingle(newdata["numberoftimeschecked"]);
- datecheckadd++;
- return;
- }
- rust.SendChatMessage(netuser, "AntiCheat", "you have voted to check " + targetuser.displayName + " and to check he needs a total of " + percentageleftt.ToString() + "% more votes");
- return;
- }
- if(newdata.ContainsKey(netuser.playerClient.userID.ToString()))
- {
- rust.SendChatMessage(netuser, "AntiCheat", "You have already voted to check " + targetuser.playerClient.userName);
- return;
- }
- if(!newdata.ContainsKey(netuser.playerClient.userID.ToString()))
- {
- newdata.Add(netuser.playerClient.userID.ToString(), cachedReason);
- timer.Once((float)300 , () => newdata.Remove(netuser.playerClient.userID.ToString()));
- }
- var newdatacount = Convert.ToSingle(newdata["Reportspl"]);
- newdata.Remove("Reportspl");
- var update = (newdatacount + 1f);
- newdata.Add("Reportspl", update);
- if(update >= numberofvotes)
- {
- AntiCheatBroadcastplayerr(targetuser.displayName + " [color orange]is now being tested");
- rust.Notice(targetuser, targetuser.displayName + " You are now being tested for hacks do as you are told");
- PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
- if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
- timer.Once(0.1f, () => phandler.StartCheck());
- rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " [color orange]is now being tested");
- rust.RunClientCommand(targetuser, "config.save");
- rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
- rust.RunClientCommand(targetuser, "input.bind Up F2 F2");
- rust.SendChatMessage(netuser, "AntiCheat", "this player will be checked for hacks shortly");
- rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " will be checked shortley");
- haschecked.Add(targetuser.playerClient.userID.ToString(), targetuser.displayName);
- }
- reportnum++;
- rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
- rust.SendChatMessage(netuser, "AntiCheat", "[color yellow]" + targetuser.displayName + " [color white] he needs a total of : [color orange]" + update + "/" + numberofvotes + " [color white]reports.");
- rust.SendChatMessage(netuser, "AntiCheat", "[color green]----------------------------------------------------------------------");
- rust.Notice(netuser, "Successfully reported player: " + targetuser.displayName + " Email any video proof to Getdrabbed@gmail.com");
- 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");
- return;
- var tally = update;
- var tally2 = PlayerClient.All.Count;
- var enhanced = (tally/tally2 * 100);
- var percentageleft = (50 - enhanced);
- if(percentageleft <= 0)
- {
- PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
- if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
- timer.Once(0.1f, () => phandler.StartCheck());
- rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " [color orange]is now being tested");
- rust.RunClientCommand(targetuser, "config.save");
- rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
- rust.RunClientCommand(targetuser, "input.bind Up F2 F2");
- rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " will be checked shortley");
- return;
- }
- if(newdata.ContainsKey(netuser.playerClient.userID.ToString()))
- {
- rust.SendChatMessage(netuser, "AntiCheat", "you have already voted to check " + targetuser.displayName + " and to check he needs a total of " + percentageleft.ToString() + "% more votes");
- return;
- }
- if(!newdata2.ContainsKey(netuser.playerClient.userID.ToString()))
- {
- newdata2.Add(netuser.playerClient.userID.ToString(), cachedReason);
- }
- gg++;
- newdata.Remove("Reportspl");
- newdata.Add("Reportspl", update);
- newdata.Add(netuser.playerClient.userID.ToString(), cachedReason);
- if(enhanced <= numberofpercentagevtoesbeforecheck)
- rust.SendChatMessage(netuser, "AntiCheat", "you have voted to check " + targetuser.displayName + "there is a total of " + enhanced.ToString() + "% who voted needs " + percentageleft.ToString() + "%");
- if(enhanced >= numberofpercentagevtoesbeforecheck)
- {
- PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
- if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
- timer.Once(0.1f, () => phandler.StartCheck());
- rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " [color orange]is now being tested");
- rust.RunClientCommand(targetuser, "config.save");
- rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
- rust.RunClientCommand(targetuser, "input.bind Up F2 F2");
- rust.SendChatMessage(netuser, "AntiCheat", "this player will be checked for hacks shortly");
- return;
- }
- rust.SendChatMessage(netuser, "AntiCheat", "there is no players found with that name");
- return;
- }
- [ChatCommand("aireports")]
- void cmdChatviewreports(NetUser netuser, string command, string[] args)
- {
- if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AntiCheat", "you are not allowed to use this command"); return; }
- var totalnumberofbans = (numberofbansdizzy + numberofbansjacked + numberofbanssteven + numberofcheckevade + numberofbansnorecoil + numberofbansnofalldamage);
- rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) Today I have Banned " + numberofbansdizzy + " Dizzy/A3mon Users " + numberofbansjacked + " JackeD users " + numberofbanssteven + " Steven Hack Users ");
- rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) " + numberofbansnofalldamage + " Number of nofall damage users " + numberofbansnorecoil + " No Recoil Users " + numberofcheckevade + " number of Check evades");
- rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) " + numberofspeedjumpban + " Number of speed jump ban Total number of bans " + totalnumberofbans + " Reports " + reportnum);
- }
- [ChatCommand("aivr")]
- void cmdChatGetdata(NetUser netuser, string command, string[] args)
- {
- if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AntiCheat", "you are not allowed to use this command"); return; }
- int count = 0;
- int bl = 1;
- if (args.Length > 0) int.TryParse(args[0], out bl);
- var newcount = (bl + 20);
- foreach (KeyValuePair<string, object> pair in Info)
- {
- count++;
- if(count < bl)
- continue;
- int count3 = count;
- if(count >= newcount)
- break;
- if(count >= newcount)
- return;
- friedchicken(netuser, pair.Key.ToString(), bl);
- }
- }
- public void friedchicken(NetUser netuser, string x , int bl)
- {
- int count = 0;
- int newcount = (bl + 20);
- var serp = Getplayerdatastore(x);
- foreach (KeyValuePair<string, object> pair in serp)
- {
- count++;
- int count3 = count;
- if(count >= newcount)
- break;
- if(count >= newcount)
- return;
- rust.SendChatMessage(netuser, "AdminCompanion", "Value " + pair.Value.ToString() + " Key " + pair.Key.ToString());
- }
- }
- [ChatCommand("aibotendcheck")]
- void cmdChatendcheck(NetUser netuser, string command, string[] args)
- {
- if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AdminCompanion", "you are not allowed to use this command"); return; }
- if (args.Length != 1)
- {
- rust.SendChatMessage(netuser, "AdminCompanion", "wrong syntax: /aibotcheckpl 'playername < must be precise");
- return;
- }
- NetUser targetuser = rust.FindPlayer(args[0]);
- if(targetuser == null)
- {
- rust.SendChatMessage(netuser, "AdminCompanion", "there is no players found with that name");
- return;
- }
- PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
- if (phandler != null)
- {
- if(phandler.playerclient.rootControllable != null)
- phandler.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(false);
- EndDetection(phandler);
- rust.SendChatMessage(netuser, "AntiCheat", "The test has been ended on " + targetuser.displayName);
- return;
- }
- rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " is not currently being tested");
- }
- [ChatCommand("aiflagcheck")]
- void cmdChatgetflagcheck(NetUser netuser, string command, string[] args)
- {
- if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AntiCheat", "you are not allowed to use this command"); return; }
- PlayerHandlerflagcheck phandler = netuser.playerClient.GetComponent<PlayerHandlerflagcheck>();
- if (phandler == null) { phandler = netuser.playerClient.gameObject.AddComponent<PlayerHandlerflagcheck>(); rust.SendChatMessage(netuser, "AntiCheat", "Your flags are now being checked"); phandler.StartCheck(); return;}
- Endflagcheck(phandler);
- rust.SendChatMessage(netuser, "AntiCheat", "Your flags are no longer being checked");
- return;
- }
- [ChatCommand("aibotcheckpl")]
- void cmdChatProdwholooted(NetUser netuser, string command, string[] args)
- {
- if (!hasAccess(netuser)) { rust.SendChatMessage(netuser, "AntiCheat", "you are not allowed to use this command"); return; }
- if (args.Length != 1)
- {
- rust.SendChatMessage(netuser, "AntiCheat", "wrong syntax: /aibotcheckpl 'playername < must be precise");
- return;
- }
- NetUser targetuser = rust.FindPlayer(args[0]);
- if(targetuser == null)
- {
- rust.SendChatMessage(netuser, "AntiCheat", "there is no players found with that name");
- return;
- }
- AntiCheatBroadcastplayerr(targetuser.displayName + " is now being checked for hacks");
- rust.Notice(targetuser, targetuser.displayName + " You are now biegn tested for hacks do as you are told");
- targetuser.playerClient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
- PlayerHandler phandler = targetuser.playerClient.GetComponent<PlayerHandler>();
- if (phandler == null) { phandler = targetuser.playerClient.gameObject.AddComponent<PlayerHandler>(); }
- timer.Once(0.1f, () => phandler.StartCheck());
- rust.SendChatMessage(netuser, "AntiCheat", targetuser.displayName + " is now being checked for hacks");
- rust.RunClientCommand(targetuser, "config.save");
- rust.RunClientCommand(targetuser, "input.bind Inventory 0 0");
- rust.RunClientCommand(targetuser, "input.bind Down F2 F2");
- rust.RunClientCommand(targetuser, "input.bind Left " + "t" + " " + "t");
- rust.RunClientCommand(targetuser, "input.bind Up " + "t" + " " + "t");
- rust.RunClientCommand(targetuser, "input.bind Duck " + "t" + " " + "t");
- }
- public bool namehasbeenbannedalready(string name)
- {
- var bannedusers = bannedUsers.GetValue(null);
- MethodInfo Enumerator = bannedusers.GetType().GetMethod("GetEnumerator");
- var myEnum = Enumerator.Invoke(bannedusers, new object[0]);
- MethodInfo MoveNext = myEnum.GetType().GetMethod("MoveNext");
- MethodInfo GetCurrent = myEnum.GetType().GetMethod("get_Current");
- string unbantarget = string.Empty;
- string unbanname = string.Empty;
- while ((bool)MoveNext.Invoke(myEnum, new object[0]))
- {
- var bannedUser = GetCurrent.Invoke(myEnum, new object[0]);
- if (name == steamid.GetValue(bannedUser).ToString() || name == username.GetValue(bannedUser).ToString())
- {
- unbantarget = steamid.GetValue(bannedUser).ToString();
- unbanname = username.GetValue(bannedUser).ToString();
- return true;
- }
- }
- return false;
- }
- void forceenddettection(NetUser netuser)
- {
- }
- void OnPlayerConnected(NetUser netuser)
- {
- if(shouldsendstatisticstoadminonconnect)
- {
- if (hasAccess(netuser))
- {
- var totalnumberofbans = (numberofbansdizzy + numberofbansjacked + numberofbanssteven + numberofcheckevade + numberofbansnorecoil + numberofbansnofalldamage);
- rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) Today I have Banned " + numberofbansdizzy + " Dizzy/A3mon Users " + numberofbansjacked + " JackeD users " + numberofbanssteven + " Steven Hack Users ");
- rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) " + numberofbansnofalldamage + " Number of nofall damage users " + numberofbansnorecoil + " No Recoil Users " + numberofcheckevade + " number of Check evades");
- rust.SendChatMessage(netuser, "AntiCheat", "Welcome Back :) " + numberofspeedjumpban + " Number of speed jump ban Total number of bans " + totalnumberofbans + " Reports " + reportnum);
- if(!shouldcheckplayerswithpermisions)
- return;
- }
- }
- if(shouldsendprobablybanevadetoadmin)
- {
- if(shouldkicknoname)
- {
- if(netuser.displayName.ToString() == "" || netuser.displayName.ToString() == " ")
- {
- netuser.Kick(NetError.Facepunch_Kick_RCON, true);
- return;
- }
- if(netuser.displayName == "DerpTeamNoob" || netuser.displayName == "LumaEmu") {}
- else
- if(namehasbeenbannedalready(netuser.displayName.ToString()))
- {
- if(smartcheck){
- var hascheckeddd = GetPlayerdata("smartchecked(log.pl)");
- var hascheckedd = GetPlayerdata("smartchecked(pl)");
- if(!hascheckeddd.ContainsKey(netuser.playerClient.userID.ToString()))
- if(!hascheckedd.ContainsKey(netuser.playerClient.userID.ToString()))
- {
- hascheckedd.Add(netuser.playerClient.userID.ToString(), true);
- if(!hascheckeddd.ContainsKey(netuser.playerClient.userID.ToString()))
- AdminCompanionpublicbroadcast("The Name " + netuser.displayName + " has been banned already i will test him when he log's in");
- }
- }
- if(!smartcheck)
- AdminCompanionpublicbroadcast("The Name " + netuser.displayName + " has been banned already but is using a different account judge by your self");
- }
- }
- }
- if(!shouldcheckplayerwhenfirstconnect)
- return;
- var firstpass = GetPlayerdata("firstpass");
- if(!firstpass.ContainsKey(netuser.playerClient.userID.ToString()))
- firstpass.Add(netuser.playerClient.userID.ToString(), true);
- }
- void helpercheck(PlayerClient player)
- {
- Debug.Log(player.controllable.npcName);
- }
- void OnPlayerSpawn(PlayerClient player, bool useCamp, RustProto.Avatar avatar)
- {
- if(smartcheck)
- {
- var hascheckedd = GetPlayerdata("smartchecked(pl)");
- var hascheckeddd = GetPlayerdata("smartchecked(log.pl)");
- if(!hascheckeddd.ContainsKey(player.userID.ToString()))
- if(hascheckedd.ContainsKey(player.userID.ToString()))
- {
- PlayerHandler phandler = player.GetComponent<PlayerHandler>();
- if (phandler == null) { phandler = player.gameObject.AddComponent<PlayerHandler>(); player.rootControllable.rootCharacter.takeDamage.SetGodMode(true); }
- timer.Once(0.1f, () => phandler.StartCheck());
- if(!hascheckeddd.ContainsKey(player.userID.ToString()))
- hascheckeddd.Add(player.userID.ToString(), true);
- return;
- }
- }
- if(!shouldcheckplayeroncewhenconnect)
- return;
- var haschecked = GetPlayerdata("hasscheckedAuto(pl)");
- if(!haschecked.ContainsKey(player.userID.ToString()))
- if(shouldcheckplayeroncewhenconnect)
- {
- PlayerHandler phandler = player.GetComponent<PlayerHandler>();
- if (phandler == null) { phandler = player.gameObject.AddComponent<PlayerHandler>(); }
- timer.Once(0.1f, () => phandler.StartCheck());
- if(!haschecked.ContainsKey(player.userID.ToString()))
- haschecked.Add(player.userID.ToString(), true);
- return;
- }
- var firstpass = GetPlayerdata("firstpass");
- if(firstpass.ContainsKey(player.userID.ToString()))
- if(!shouldcheckplayeroncewhenconnect)
- if(firstpass.ContainsKey(player.userID.ToString()))
- {
- PlayerHandler phandler = player.GetComponent<PlayerHandler>();
- if (phandler == null) { phandler = player.gameObject.AddComponent<PlayerHandler>(); }
- timer.Once(0.1f, () => phandler.StartCheck());
- firstpass.Remove(player.userID.ToString());
- return;
- }
- return;
- }
- void AdminCompanionpublicbroadcast(string message)
- {
- var hasacess = GetPlayerdata("Flags(pl)");
- foreach (PlayerClient player in PlayerClient.All)
- {
- if (player.netUser.CanAdmin() || hasacess.ContainsKey(player.userID.ToString()))
- ConsoleNetworker.SendClientCommand(player.netPlayer, "chat.add AntiCheat \"" + message + "\"");
- }
- }
- static void AntiCheatBroadcastplayer(string message)
- {
- foreach (PlayerClient player in PlayerClient.All)
- {
- ConsoleNetworker.SendClientCommand(player.netPlayer, "chat.add AntiCheat \"" + message + "\"");
- }
- }
- public void AntiCheatBroadcastplayerr(string message)
- {
- foreach (PlayerClient player in PlayerClient.All)
- {
- ConsoleNetworker.SendClientCommand(player.netPlayer, "chat.add AntiCheat \"" + message + "\"");
- }
- }
- static void EndDetection(PlayerHandler player)
- {
- NetUser netuser = player.playerclient.netUser;
- if(player.hasloc2)
- TeleportToPos2(netuser, player.firstx1, player.firsty1, player.firstz1);
- returnsettings(player.playerclient.netUser);
- GameObject.Destroy(player);
- }
- void Endflagcheck(PlayerHandlerflagcheck player)
- {
- GameObject.Destroy(player);
- }
- static void Resettest(PlayerHandler player)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "input.bind Up F2 F2");
- }
- static void removeui(PlayerHandler player)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "gameui.hide");
- }
- static void Resettestt(PlayerClient player, string lastcheckstring)
- {
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Down " + lastcheckstring + " " + lastcheckstring);
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Left " + "None" + " " + "None");
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Right " + "None" + " " + "None");
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Up " + "None" + " " + "None");
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Duck " + "None" + " " + "None");
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Jump " + "None" + " " + "None");
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Fire " + "None" + " " + "None");
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Inventory " + "None" + " " + "None");
- }
- static void Resettestt2(PlayerClient player, string lastcheckstring)
- {
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Down " + lastcheckstring + " " + lastcheckstring);
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Left " + "None" + " " + "None");
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Right " + "None" + " " + "None");
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Up " + "None" + " " + "None");
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Duck " + "None" + " " + "None");
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Fire " + "None" + " " + "None");
- ConsoleNetworker.SendClientCommand(player.netPlayer, "input.bind Inventory " + "None" + " " + "None");
- }
- [ChatCommand("aihelp")]
- void cmdChatsendhelptext(NetUser netuser, string command, string[] args)
- {
- SendReply(netuser, "Refresh Language : Type /airefresh To Refresh Your selected language");
- SendReply(netuser, "Select your system : Type /system mac or pc To Select system");
- SendReply(netuser, "Report Hacker : Type /aireport Playername to report a player Total number of votes needed before check is " + numberofvotes.ToString());
- if (!hasAccess(netuser)) { return; }
- SendReply(netuser, "Force Check : Type /aibotcheckpl to force check a player (flag needed)");
- SendReply(netuser, "To View Reports : Type /aireports to force check a player (flag needed)");
- SendReply(netuser, "Flagcheck flags(used for configuration) : Type /aiflagcheck and /aiflagcheck again to disable it");
- SendReply(netuser, "Promote Player : Type /aipromote playername to add a player to Companion list (flag needed)");
- SendReply(netuser, "Demote player : Type /aidemote playername to Remove a player from the Companion list (flag needed)");
- SendReply(netuser, "Test Zone : Type /aisafezone To save /remove a testzone (flag needed)");
- SendReply(netuser, "Force end check : Type /aibotendcheck to force end check on a player (flag needed)");
- SendReply(netuser, "Remove Language : Type /aiforceremovelang To Remove A Language dictionary (flag needed)");
- }
- void SendHelpText(NetUser netuser)
- {
- SendReply(netuser, "AdminCompanion : Type /aihelp to get help about the AdminCompanion plugin");
- }
- public static void checkplayer(PlayerHandler player)
- {
- if(!shouldcheckhackmenu)
- {
- AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Cleared from this plugin");
- undofixplayerhp(player);
- returnsettings(player.playerclient.netUser);
- player.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(false);
- EndDetection(player);
- return;
- }
- var crouchjumpexploitdetection = player.playerclient.controllable.stateFlags.flags;
- player.h++;
- if(shouldbanforidle)
- if(player.h >= idletimetillban)
- {
- if(shoulddoipban)
- ipban(player, "AdminCompanion(Max Amount of Idle Time Reached)");
- AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for idle during test");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Max Amount of Idle Time Reached)");
- return;
- }
- if(player.didteleport)
- {
- Resettestt(player.playerclient, player.laststring2);
- if(player.playertestdelaycount <= 1)
- {
- player.playertestdelaycount++;
- return;
- }
- player.didteleport = false;
- return;
- }
- var check = player.playerclient.controllable.stateFlags.flags;
- if(!player.playerclient.controllable.stateFlags.grounded)
- return;
- if(check == null)
- return;
- NetUser netuser = player.playerclient.netUser;
- var pitch = player.playerclient.controllable.eyesPitch;
- var datastore2 = Getplayerdatastore("AdminCompanion(Lang.Log)");
- if(!player.playerhaslang2)
- return;
- if(!player.hasresettest)
- {
- Resettestt(player.playerclient, player.laststring2);
- player.hasresettest = true;
- return;
- }
- var language = Getplayerdatastore(player.language);
- var location1 = player.playerclient.lastKnownPosition;
- var distance3D = player.distance3D;
- var distance3d3 = Math.Floor(Vector3.Distance(player.playerclient.lastKnownPosition, player.lastPosition));
- if(!language.ContainsKey("F2testmsg"))
- {
- return;
- }
- if(!language.ContainsKey("donotdcmessage"))
- {
- return;
- }
- var holdf2msg = language["F2testmsg"].ToString();
- int pFrom = holdf2msg.IndexOf("F2");
- var result2 = holdf2msg.Remove(pFrom, 2);
- var inserttest = result2.Insert(pFrom, "ins/insert");
- var stevencheck = result2.Insert(pFrom, "F5");
- var disconnectmsg = language["donotdcmessage"].ToString();
- var completedmsg = language["Completedmsg"].ToString();
- if(check == menuscreenflag)
- {
- removeui(player);
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + " " + disconnectmsg + "\"");
- player.wasinmenu = true;
- return;
- }
- if(player.wasinmenu)
- {
- player.wasinmenucount++;
- if(player.wasinmenucount >= 3)
- {
- player.wasinmenu = false;
- player.wasinmenucount = 0;
- }
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "was in menu " + "\"");
- Resettestt(player.playerclient, player.laststring2);
- return;
- }
- if(!shouldcheckdizzy)
- if(!player.hasfinisheddizzy2)
- {
- player.finisheddizzycheck = true;
- player.laststring2 = "insert";
- Resettestt(player.playerclient, player.laststring2);
- player.hasfinisheddizzy2 = true;
- }
- if(!player.finisheddizzycheck)
- {
- player.laststring2 = "F2";
- if(check == menuscreenflag)
- {
- removeui(player);
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + " " + disconnectmsg + "\"");
- player.wasinmenu = true;
- return;
- }
- if(distance3D.ToString() == "0")
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + holdf2msg + "\"");
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "[color orange]If you dont move press FN(function) + F2" + "\"");
- return;
- }
- if(player.playerclient.controllable.stateFlags.lostFocus)
- {
- if(shoulddoipban)
- ipban(player, "AdminCompanion(Dizzy Hack)");
- AntiCheatBroadcastplayer(player.playerclient.userName + " [color red]has been autodetected of a menu - A3mon/Dizzy Client Menu");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Dizzy Hack)");
- numberofbansdizzy++;
- return;
- }
- if(distance3D.ToString().Contains("-"))
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + holdf2msg + "\"");
- return;
- }
- if(check.ToString() == "6272")
- {
- if(shoulddoipban)
- ipban(player, "AdminCompanion(Dizzy Hack)");
- AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for using Dizzy/A3mon hack");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Dizzy Hack)");
- numberofbansdizzy++;
- return;
- }
- if(distance3D <= 1.77777)
- return;
- if(distance3D <= 2.77777)
- return;
- if(!player.playerclient.controllable.stateFlags.movement)
- return;
- var location2 = player.lastPosition;
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "at checkstate" + "\"");
- player.laststring2 = "insert";
- player.finisheddizzycheck = true;
- player.hasresettest = false;
- player.h = 0f;
- player.count++;
- return;
- }
- if(player.count >= 1)
- {
- player.count = 0;
- Resettestt(player.playerclient, player.laststring2);
- return;
- }
- if(player.system == "mac");
- if(!player.hasfinishedjacked2)
- {
- player.finishedjackedcheck = true;
- player.laststring2 = "F5";
- Resettestt(player.playerclient, player.laststring2);
- player.hasfinishedjacked2 = true;
- }
- if(!shouldcheckjacked)
- if(!player.hasfinishedjacked2)
- {
- player.finishedjackedcheck = true;
- player.laststring2 = "F5";
- Resettestt(player.playerclient, player.laststring2);
- player.hasfinishedjacked2 = true;
- }
- if(!player.finishedjackedcheck)
- {
- player.laststring2 = "insert";
- Resettestt(player.playerclient, player.laststring2);
- if(check == menuscreenflag)
- {
- removeui(player);
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + " " + disconnectmsg + "\"");
- Resettestt(player.playerclient, player.laststring2);
- player.wasinmenu = true;
- return;
- }
- if(distance3D.ToString() == "0")
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + inserttest + "\"");
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "[color orange]If you dont move press FN(function) + insert" + "\"");
- return;
- }
- if(player.playerclient.controllable.stateFlags.lostFocus)
- {
- if(shoulddoipban)
- ipban(player, "AntiCheat(Jacked Hack Detected)");
- AntiCheatBroadcastplayer(player.playerclient.userName + " [color red]has been autodetected of a menu - Rust Jacked Menu");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AntiCheat(Jacked Hack Detected)");
- numberofbansjacked++;
- return;
- }
- if(distance3D.ToString().Contains("-"))
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + inserttest + "\"");
- return;
- }
- if(distance3D <= 1.77777)
- return;
- if(distance3D <= 2.77777)
- return;
- if(!player.playerclient.controllable.stateFlags.movement)
- return;
- player.h = 0f;
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "finished jacked check" + "\"");
- player.finishedjackedcheck = true;
- player.hasresettest = false;
- player.laststring2 = "F5";
- player.hasresettest = false;
- player.count = 1;
- return;
- }
- if(player.count == 1)
- {
- player.count = 0;
- Resettestt(player.playerclient, player.laststring2);
- return;
- }
- if(!shouldchecksteven)
- {
- player.finishedstevencheck = true;
- }
- if(!player.finishedstevencheck)
- {
- player.laststring2 = "F5";
- if(check == menuscreenflag)
- {
- removeui(player);
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + disconnectmsg + "\"");
- Resettestt(player.playerclient, player.laststring2);
- player.wasinmenu = true;
- return;
- }
- if(distance3D.ToString() == "0")
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + stevencheck + "\"");
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "[color orange]If you dont move press FN(function) + F5" + "\"");
- return;
- }
- if(distance3D.ToString().Contains("-"))
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + stevencheck + "\"");
- return;
- }
- if(player.playerclient.controllable.stateFlags.lostFocus)
- {
- if(shoulddoipban)
- ipban(player, "AntiCheat(Steven Hack Detected)");
- AntiCheatBroadcastplayer(player.playerclient.userName + " [color red]has been autodetected of a menu - Steven Menu");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AntiCheat(Steven Hack Detected)");
- numberofbanssteven++;
- return;
- }
- if(distance3D <= 1.77777)
- return;
- if(distance3D <= 2.77777)
- return;
- if(!player.playerclient.controllable.stateFlags.movement)
- return;
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "finished steven check" + "\"");
- player.finishedstevencheck = true;
- }
- AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Cleared from this plugin");
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "Thank you for your cooperation " + player.playerclient.userName + "\"");
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + completedmsg + " " + player.playerclient.userName + "\"");
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "finished dizzycheck" + "\"");
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "finished jacked check" + "\"");
- returnsettings(player.playerclient.netUser);
- undofixplayerhp(player);
- player.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(false);
- EndDetection(player);
- }
- public static void clearalldata(PlayerHandler player)
- {
- DataStore[player.playerclient.userID.ToString()] = null;
- }
- public static object returnsettings(NetUser player)
- {
- ConsoleNetworker.SendClientCommand(player.networkPlayer, "config.load");
- return true;
- }
- public static bool hasplayerlanguage(PlayerHandler player)
- {
- var data = Getplayerdatastore("AdminCompanion(Lang.Log)");
- if(data.ContainsKey(player.playerclient.userID.ToString()))
- return true;
- return false;
- }
- public static void returnallsetting(PlayerHandler playerr)
- {
- if(falldamageenabled)
- return;
- if(!falldamageenabled)
- {
- ConsoleSystem.Run("falldamage.enabled false", false);
- }
- foreach (PlayerClient player in PlayerClient.All)
- {
- if (player.userID != playerr.playerclient.userID)
- {
- if(player.rootControllable == null)
- return;
- FallDamage falldamage = player.rootControllable.GetComponent<FallDamage>();
- falldamage.enabled = false;
- }
- }
- }
- public static void dosettings(PlayerHandler playerr)
- {
- ConsoleSystem.Run("falldamage.enabled true", false);
- if(falldamageenabled)
- return;
- foreach (PlayerClient player in PlayerClient.All)
- {
- if (player.userID != playerr.playerclient.userID)
- {
- if(player.rootControllable == null)
- return;
- FallDamage falldamage = player.rootControllable.GetComponent<FallDamage>();
- falldamage.enabled = false;
- }
- }
- }
- public static void hassetfallimpact(PlayerHandler playerr)
- {
- foreach (PlayerClient player in PlayerClient.All)
- {
- if (player.userID != playerr.playerclient.userID)
- {
- FallDamage falldamage = player.rootControllable.GetComponent<FallDamage>();
- falldamage.enabled = false;
- }
- }
- }
- public static void setserversettings(PlayerHandler player)
- {
- }
- public static void Snappycheck(PlayerHandler player)
- {
- }
- public static void checkplayerjumpspeed(PlayerHandler player)
- {
- var crouchjumpexploitdetection = player.playerclient.controllable.stateFlags.flags;
- if(!shouldcheckjumpspeed)
- {
- player.passedjumptest = true;
- return;
- }
- if(!player.hasressetjsettings)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "config.load");
- Resettestt2(player.playerclient, player.laststring2);
- player.hasressetjsettings = true;
- }
- if(!player.autolanguage)
- if(!Issober2(player))
- {
- Debug.Log("AdminCompanion : Something went Wrong Test ended on without finishing " + player.playerclient.userName.ToString());
- EndDetection(player);
- return;
- }
- if(player.crouchdelayactivated)
- {
- player.crouchdelay++;
- if(player.crouchdelay >= 3f)
- {
- player.crouchdelay = 0f;
- player.crouchdelayactivated = false;
- }
- return;
- }
- var language = Getplayerdatastore(player.language);
- var jumptest = language["speedjumptestmsg"].ToString();
- if(crouchjumpexploitdetection == menuscreenflag)
- {
- player.messagetally8++;
- if(player.messagetally8 > 75f)
- {
- player.messagetally8 = 0f;
- Resettestt2(player.playerclient, player.laststring2);
- removeui(player);
- }
- return;
- }
- if(!language.ContainsKey("donotcrouchmsg"))
- {
- return;
- }
- var crouchmsg = language["donotcrouchmsg"].ToString();
- if(crouchjumpexploitdetection == crouchdetetctionsecondflagcheck || crouchjumpexploitdetection == 6209)
- {
- player.messagetally4++;
- if(player.messagetally4 >= 15f)
- {
- player.messagetally4 = 0f;
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + " " + crouchmsg + "\"");
- }
- player.crouchdelayactivated = true;
- return;
- }
- if(player.messagetally == 0f)
- {
- player.shouldsendmessagetally = true;
- }
- if(!language.ContainsKey("speedjumptestmsg"))
- {
- return;
- }
- if(!player.isinjumptest)
- {
- if(player.didjump)
- {
- if(player.playerclient.controllable.stateFlags.grounded)
- {
- player.didjump = false;
- }
- return;
- }
- player.messagetally5++;
- if(player.messagetally5 >= 60f)
- {
- player.messagetally5 = 0f;
- player.s++;
- if(shouldbanforidle)
- if(player.s >= idletimetillban)
- {
- if(shoulddoipban)
- ipban(player, "AdminCompanion(Max amount of idle time reached)");
- AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for being idle during test");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Max amount of idle time reached)");
- return;
- }
- }
- if(player.playerclient.controllable.stateFlags.grounded)
- {
- player.messagetally++;
- if(player.messagetally >= 60f)
- {
- player.messagetally = 0f;
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + " " + jumptest + "\"");
- }
- if(!player.didjump){
- player.playerjumpspeed++;
- }
- return;
- }
- player.didjump = true;
- if(player.playerjumpspeed < 38)
- {
- if(shouldbepinglienient)
- {
- var ping = player.playerclient.netUser.networkPlayer.averagePing;
- if(ping != null)
- if(ping >= pinglimitbeforeignore)
- return;
- }
- if(!player.fistspeedjumpdetection)
- {
- player.fistspeedjumpdetection = true;
- return;
- }
- if(!player.hasfinishedthrdexcepion)
- {
- player.hasfinishedthrdexcepion = true;
- player.timedjumpdettections -= 3;
- return;
- }
- if(shoulddoipban)
- ipban(player, "AntiCheat(Speed Jump)");
- AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for Speed Jumping");
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "speed jump dettected" + "\"");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AntiCheat(Speed Jump)");
- numberofspeedjumpban++;
- return;
- }
- if(player.playerjumpspeed > 63)
- {
- if(!player.firsttimedjumpdetection)
- {
- player.firsttimedjumpdetection = true;
- return;
- }
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "I will ban you for timing jumps " + "\"");
- if(shouldbanforitmingjumps)
- {
- var ping = player.playerclient.netUser.networkPlayer.averagePing;
- if(ping != null)
- if(ping <= pinglimitbeforeignore)
- player.timedjumpdettections++;
- if(player.timedjumpdettections >= numberoftimedjumpdettectionsbeforeban)
- {
- if(!player.firstjump)
- {
- if(shoulddoipban)
- ipban(player, "AntiCheat(Timing Jumps " + player.playerjumpspeed.ToString() + ")");
- AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for Timing Jumps");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Timing Jumps " + player.playerjumpspeed.ToString() + ")");
- return;
- }
- if(!player.firstjump)
- {
- player.firstjump = true;
- }
- }
- }
- }
- if(player.playerjumpspeed > 48 && player.playerjumpspeed <= 62)
- {
- if(!player.firstpass)
- {
- player.firstpass = true;
- return;
- }
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "We have determined that you are not using a ccmotor jump modifier" + "\"");
- player.passedjumptest = true;
- }
- player.playerjumpspeed = 0;
- }
- }
- public static void undofixplayerhp(PlayerHandler source)
- {
- if (source == null || source.playerclient == null) return;
- if (source == null || source.playerclient.controllable == null) return;
- FallDamage falldamage = source.playerclient.rootControllable.GetComponent<FallDamage>();
- var testc = source.playerclient.rootControllable.GetComponent<HumanBodyTakeDamage>();
- PlayerHandler phandler = source.playerclient.GetComponent<PlayerHandler>();
- phandler.hasdoneheal = true;
- if(testc == null)
- {
- }
- testc.Bandage( 1000.0f );
- falldamage.ClearInjury();
- }
- public static bool Issober(PlayerHandler player)
- {
- var datastore = Getplayerdatastore(player.playerclient.userID.ToString());
- if(!datastore.ContainsKey("Language"))
- return false;
- if(datastore["Language"] == null)
- return false;
- if(!datastore.ContainsKey("Language"))
- return true;
- return false;
- }
- public static bool Issober2(PlayerHandler player)
- {
- var datastore = Getplayerdatastore(player.playerclient.userID.ToString());
- var dataplus = datastore["Language"].ToString();
- var data3 = Getplayerdatastore(dataplus);
- if(!data3.ContainsKey("F2testmsg"))
- return false;
- if(DataStore[dataplus] == null)
- return false;
- return true;
- }
- public static void doenglishdic()
- {
- var defaultenglishlanguage = Getplayerdatastore("en");
- if(!defaultenglishlanguage.ContainsKey("speedjumptestmsg"))
- {
- defaultenglishlanguage.Add("F2testmsg", "Please Hold F2");
- defaultenglishlanguage.Add("speedjumptestmsg", "Jump fast please");
- defaultenglishlanguage.Add("norecoiltestmsg", "Please take out the weapon we have placed in your inventory");
- defaultenglishlanguage.Add("nospreadtestmsg", "take out your weapon and shoot that wall");
- defaultenglishlanguage.Add("Completedmsg", "Thank you for your cooperation you have completed all test's ");
- defaultenglishlanguage.Add("donotcrouchmsg", "Please do not crouch during this test");
- defaultenglishlanguage.Add("donotdcmessage", "Please do not Disconnect during this Test");
- defaultenglishlanguage.Add("Dorecoiltest", "Please press and Hold c");
- }
- }
- public static void GetLanguage(PlayerHandler player)
- {
- var datastore = Getplayerdatastore(player.playerclient.userID.ToString());
- var check = player.playerclient.controllable.stateFlags.flags;
- if(!player.isininventory)
- if(check != null)
- {
- if(player.playerclient.controllable.stateFlags.lostFocus)
- {
- if(!player.hasreceild2)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "config.load");
- player.hasreceild2 = true;
- }
- return;
- }
- if(!player.hasreceildcheck)
- {
- Resettestt2(player.playerclient, player.laststring2);
- player.hasreceildcheck = true;
- }
- player.isininventory = true;
- }
- if(check == null)
- return;
- if(check == menuscreenflag)
- {
- player.messagetally7++;
- if(player.messagetally7 > 75f)
- {
- Resettestt2(player.playerclient, player.laststring2);
- player.messagetally7 = 0f;
- removeui(player);
- }
- return;
- }
- if(shoulduseenglishdictionaryonly)
- {
- doenglishdic();
- player.autolanguage = true;
- player.language = "en";
- player.hasselectedlanguage = true;
- player.forcefinish = true;
- player.playerhaslang2 = true;
- return;
- }
- if(!player.hasselectedlanguage)
- {
- player.messagetally3++;
- if(player.messagetally3 >= 60f)
- {
- player.messagetally3 = 0f;
- Resettestt2(player.playerclient, player.laststring2);
- player.inttimetally++;
- if(player.inttimetally >= 30)
- {
- doenglishdic();
- player.autolanguage = true;
- player.language = "en";
- player.hasselectedlanguage = true;
- player.forcefinish = true;
- player.playerhaslang2 = true;
- return;
- }
- }
- if(datastore.ContainsKey("Language"))
- {
- var langg = datastore["Language"].ToString();
- var signature = Getplayerdatastore(langg);
- if(!signature.ContainsKey("F2testmsg") || !signature.ContainsKey("speedjumptestmsg") || !signature.ContainsKey("nospreadtestmsg") || !signature.ContainsKey("Dorecoiltest") || !signature.ContainsKey("donotdcmessage") || !signature.ContainsKey("norecoiltestmsg"))
- {
- DataStore[langg] = null;
- if(datastore.ContainsKey("Language"))
- datastore.Remove("Language");
- return;
- }
- if(signature ["F2testmsg"].ToString().Contains("INVALID"))
- {
- DataStore[langg] = null;
- if(datastore.ContainsKey("Language"))
- datastore.Remove("Language");
- return;
- }
- player.language = langg;
- player.hasselectedlanguage = true;
- player.forcefinish = true;
- }
- player.messagetally2++;
- if(player.messagetally2 >= 60f)
- if(!datastore.ContainsKey("Language"))
- {
- var crouchjumpexploitdetection = player.playerclient.controllable.stateFlags.flags;
- player.messagetally2 = 0f;
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "please type something in chat with your native language to continue " + player.playerclient.userName + "\"");
- return;
- }
- if(!Issober(player))
- {
- if(player.messagetally2 >= 60f)
- {
- player.messagetally2 = 0f;
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "please type something in chat with your native language to continue" + "\"");
- }
- return;
- }
- if(!datastore.ContainsKey("Language"))
- {
- player.messagetally++;
- if(player.messagetally2 >= 60f)
- {
- player.messagetally2 = 0f;
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AntiCheat \"" + "please type something in chat with your native language to continue" + "\"");
- return;
- }
- return;
- }
- player.hasselectedlanguage = true;
- return;
- }
- if(!datastore.ContainsKey("Language"))
- {
- player.messagetally++;
- if(player.messagetally2 >= 60f)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + "Umm..... Soemthing whent wrong I will attemp to fix :)" + "\"");
- player.messagetally2 = 0f;
- }
- player.hasselectedlanguage = false;
- return;
- }
- var lang = datastore["Language"].ToString();
- if(!player.forcefinish)
- {
- player.messagetally2++;
- if(player.messagetally2 >= 60f)
- if(!datastore.ContainsKey("Language"))
- {
- player.hasselectedlanguage = false;
- 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" + "\"");
- player.messagetally2 = 0f;
- return;
- }
- if(DataStore[lang] == null)
- {
- datastore.Remove("Language");
- return;
- }
- var failsafe = Getplayerdatastore(lang);
- if(!Issober2(player))
- {
- return;
- }
- if(!failsafe.ContainsKey("F2testmsg"))
- {
- DataStore[lang] = null;
- datastore.Remove("Language");
- return;
- }
- player.language = lang;
- player.playerhaslang2 = true;
- player.forcefinish = true;
- return;
- }
- if(!Issober2(player))
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + "Ummm........ Something whent wrong correcting all error's" + "\"");
- datastore.Remove("Language");
- player.forcefinish = false;
- player.hasselectedlanguage = false;
- Debug.Log("AdminCompanion : Some thing whent wrong you will have to redefine your language sorry for the inconvienience");
- return;
- }
- player.language = datastore["Language"].ToString();
- player.playerhaslang2 = true;
- return;
- if(player.forcefinish)
- {
- player.messagetally2++;
- if(player.messagetally2 >= 60f)
- if(shouldautoselectlagnuageifplayeridl)
- {
- player.idletimecount++;
- if(player.idletimecount >= idletimetillautoseectlanguage)
- {
- player.language = "en";
- player.playerhaslang2 = true;
- return;
- }
- }
- if(player.messagetally >= 60f)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + "please type something in chat with your native language to continue" + "\"");
- player.messagetally = 0f;
- }
- }
- return;
- var datastore2 = Getplayerdatastore("AdminCompanion(Lang.Log)");
- if(datastore2.ContainsKey(player.playerclient.userID.ToString()))
- {
- foreach (KeyValuePair<string, object> pair in datastore2)
- 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()))
- {
- var uid = pair.Value.ToString();
- player.language = uid;
- var datastore3 = Getplayerdatastore(uid);
- if(!datastore3.ContainsKey("Completedmsg"))
- return;
- player.playerhaslang2 = true;
- }
- }
- if(datastore2.ContainsKey(player.playerclient.userID.ToString()))
- {
- foreach (KeyValuePair<string, object> pair in datastore2)
- 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()))
- {
- var uid = pair.Value.ToString();
- player.language = uid;
- player.playerhaslang2 = true;
- return;
- }
- }
- if(!player.hasselectedlanguage)
- {
- player.messagetally2++;
- if(player.messagetally2 >= 60f)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + "please type something in chat with your native language to continue" + "\"");
- player.messagetally2 = 0f;
- }
- return;
- }
- if(!player.playerhaslang2)
- {
- foreach (KeyValuePair<string, object> pair in datastore2)
- 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()))
- {
- var uid = pair.Value.ToString();
- player.language = uid;
- player.playerhaslang2 = true;
- return;
- }
- }
- }
- public class PlayerHandlerflagcheck : UnityEngine.MonoBehaviour
- {
- public PlayerClient playerclient;
- public string userid;
- public Character character;
- public float lastTick;
- public float currentTick;
- void Awake()
- {
- lastTick = UnityEngine.Time.realtimeSinceStartup;
- enabled = false;
- }
- public void StartCheck()
- {
- this.playerclient = GetComponent<PlayerClient>();
- this.userid = this.playerclient.userID.ToString();
- if (playerclient.controllable == null) return;
- this.character = playerclient.controllable.GetComponent<Character>();
- enabled = true;
- FixedUpdate();
- }
- void FixedUpdate()
- {
- if (UnityEngine.Time.realtimeSinceStartup - lastTick >= 1)
- {
- currentTick = UnityEngine.Time.realtimeSinceStartup;
- lastTick = currentTick;
- var characterstate = this.playerclient.controllable.stateFlags.flags;
- ConsoleNetworker.SendClientCommand(this.playerclient.netPlayer, "chat.add AdminCompanion \"" + "Your current character state is " + characterstate + "\"");
- }
- }
- }
- public class PlayerHandler : UnityEngine.MonoBehaviour
- {
- public bool firstmessage;
- public string system = "None";
- public bool hasreceild2;
- public bool hasreceildcheck;
- public bool hasfinishedthrdexcepion;
- public IInventoryItem lastinventoryitem;
- public bool hasremoveditem;
- public bool hasceildcheck;
- public bool hasfinisheddizzy2;
- public bool hasfinishedsteven2;
- public bool hasfinishedjacked2;
- public bool nofallexception;
- public bool hasressetjsettings;
- public bool autolanguage;
- public bool isininventory;
- public string newstring;
- public string newstring2;
- public string newstring3;
- public string newstring4;
- public string newstring5;
- public string newstring6;
- public string newstring7;
- public string newstring8;
- public int intt = 30;
- public string normstring;
- public int inttimetally;
- public int numberoffakecalls;
- public int savedweaponnumber;
- public bool hasgotengivenitem;
- public bool detectionended;
- public bool hasrefreshedinventorysettings;
- public bool secoonddetect;
- public bool thrddetect;
- public float fallcount;
- public bool firstdetect;
- public float n;
- public bool fistspeedjumpdetection;
- public float s;
- public float h;
- public float nr;
- public Vector3 point;
- public bool hasdoneheal;
- public GameObject Load;
- public float firstx;
- public float firstx1;
- public float firsty1;
- public float firstz1;
- public bool didteleportback;
- public bool crouchdelayactivated;
- public bool isreturningsettings;
- public bool firsttimedjumpdetection;
- public float crouchdelay;
- public string whatsyourlanguage;
- public bool playerhasremovednulllang;
- public int playertestdelaycount;
- public float lasthealth;
- public float firsty;
- public int count3;
- public int timedjumpdettections = 0;
- public float idletimecount;
- public float firstz;
- public bool hasresettest;
- public bool didteleport;
- public bool forcefinish;
- public bool firstjump;
- public int secondselect = 0;
- public bool firstnofalldetection;
- public bool firsttime;
- public bool isfirstcheck;
- public bool firstpasseular;
- public bool hascompletednofallcheck;
- public bool passednorecoiltest;
- public bool firstgetclimpammo;
- public bool hasgivenammo;
- public string lastclipammo;
- public string lasteularangles;
- public InventoryItem lastdatablock;
- public bool datablocknull;
- public ItemDataBlock lastdatablock2;
- public ItemDataBlock lastdatablock3;
- public bool hasgivenweapon;
- public bool hasremoveddefaultitem;
- public bool didjump;
- public bool hasselecteddatablock;
- public bool hastakenoutweapon;
- public bool firstpass;
- public bool shouldsendmessagetally;
- public bool passedjumptest;
- public float lasty;
- public float messagetally = 0f;
- public float messagetally2 = 0f;
- public float messagetally3 = 0f;
- public float messagetally4 = 0f;
- public float messagetally5 = 0f;
- public float messagetally6 = 0f;
- public float messagetally7 = 0f;
- public float messagetally8 = 0f;
- public float lasty2;
- public float lastjump;
- public double playerjumpspeed = 0.0;
- public string laststring2 = "F2";
- public string language;
- public bool wasinmenu;
- public bool diddolastjump;
- public bool isinjumptest;
- public bool playerhaslang2;
- public bool hasselectedlanguage;
- public bool finishedspeedjumpptest;
- public float timeleft;
- public float lastTick;
- public float currentTick;
- public float deltaTime;
- public float component2distance;
- public Component componenthit2;
- public Vector3 lastPosition;
- public Vector3 headlocation2;
- public BulletWeaponDataBlock lastbulletitem;
- public float headlocation3;
- public float headlocationangle2;
- public float headlocationangle1;
- public float checkrotaionx;
- public float totaleularanglesplayerhandler;
- public Vector3 lastPosition2;
- public PlayerClient playerclient;
- public Character character;
- public Inventory inventory;
- public string userid;
- public float distance3D;
- public float distance3D2;
- public float distanceHeight;
- public bool finishedstevencheck;
- public bool finishedjackedcheck;
- public bool finisheddizzycheck;
- public bool firstcheckstate;
- public float firtz1;
- public float firty1;
- public int count;
- public int wasinmenucount;
- public float currentFloorHeight;
- public bool hasSearchedForFloor = false;
- public float lastSpeed = UnityEngine.Time.realtimeSinceStartup;
- public int speednum = 0;
- public bool hasteleportedtosafety;
- public bool hasloc2;
- public float lastWalkSpeed = UnityEngine.Time.realtimeSinceStartup;
- public int walkspeednum = 0;
- public bool lastSprint = false;
- public float lastJump = UnityEngine.Time.realtimeSinceStartup;
- public int jumpnum = 0;
- public int message9;
- public float lastFly = UnityEngine.Time.realtimeSinceStartup;
- public int flynum = 0;
- public int noRecoilDetections = 0;
- public int noRecoilKills = 0;
- public float lastWoodCount = 0;
- void Awake()
- {
- lastTick = UnityEngine.Time.realtimeSinceStartup;
- enabled = false;
- }
- public void StartCheck()
- {
- this.playerclient = GetComponent<PlayerClient>();
- this.userid = this.playerclient.userID.ToString();
- if (playerclient.controllable == null) return;
- this.character = playerclient.controllable.GetComponent<Character>();
- this.lastPosition = this.playerclient.lastKnownPosition;
- enabled = true;
- FixedUpdate();
- }
- void FixedUpdate()
- {
- if(this.system == "None")
- {
- Dosystem(this);
- return;
- }
- if(!this.hasteleportedtosafety)
- {
- doteleporttosafety(this);
- return;
- }
- if(!this.playerhaslang2)
- {
- GetLanguage(this);
- }
- if(!this.playerhaslang2)
- {
- return;
- }
- if(!this.passedjumptest)
- checkplayerjumpspeed(this);
- if(this.passedjumptest){
- if (UnityEngine.Time.realtimeSinceStartup - lastTick >= 1)
- {
- if(!this.hascompletednofallcheck)
- checknofall(this);
- if(this.hascompletednofallcheck)
- if(!this.passednorecoiltest)
- norecoilcheck(this);
- if(this.passednorecoiltest)
- checkplayer(this);
- currentTick = UnityEngine.Time.realtimeSinceStartup;
- deltaTime = currentTick - lastTick;
- distance3D = Vector3.Distance(playerclient.lastKnownPosition, lastPosition) / deltaTime;
- distanceHeight = (playerclient.lastKnownPosition.y - lastPosition.y) / deltaTime;
- lastPosition = playerclient.lastKnownPosition;
- lastTick = currentTick;
- this.hasSearchedForFloor = false;
- }}
- }
- }
- static void doteleporttosafety(PlayerHandler player)
- {
- NetUser netuser = player.playerclient.netUser;
- if(!player.hasloc2)
- {
- player.firstx1 = player.playerclient.lastKnownPosition.x;
- player.firsty1 = player.playerclient.lastKnownPosition.y;
- player.firstz1 = player.playerclient.lastKnownPosition.z;
- player.hasloc2 = true;
- }
- var loc = Getplayerdatastore("SafeZone");
- if(!loc.ContainsKey("x"))
- {
- TeleportToPos2(netuser, 0.0f, 389.1f, 0.0f);
- player.hasteleportedtosafety = true;
- return;
- }
- var safex = Convert.ToSingle(loc["x"]);
- var safey = Convert.ToSingle(loc["y"]);
- var safez = Convert.ToSingle(loc["z"]);
- TeleportToPos2(netuser, safex, safey, safez);
- player.hasteleportedtosafety = true;
- return;
- }
- string GetMessage(string key, string steamId = null) => lang.GetMessage(key, this, steamId);
- static void Dosystem(PlayerHandler player)
- {
- if(!player.firstmessage)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add " + "AntiCheat \"" + "use /system 'mac' or /system 'pc'" + "\"");
- player.firstmessage = true;
- return;
- }
- player.message9++;
- if(player.message9 >= 80)
- {
- player.message9 = 0;
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add " + "AntiCheat \"" + "use /system 'mac' or /system 'pc'" + "\"");
- }
- }
- static void TeleportToPos2(NetUser source, float x, float y, float z)
- {
- if (Physics.Raycast(new Vector3(x, -1000f, z), vectorup2, out cachedRaycasttt, Mathf.Infinity, terrainLayerr))
- {
- if (cachedRaycasttt.point.y > y) y = cachedRaycasttt.point.y;
- }
- management2.TeleportPlayerToWorld(source.playerClient.netPlayer, new Vector3(x, y, z));
- }
- static bool PlayerHandlerHasGround(PlayerHandler player)
- {
- if (!player.hasSearchedForFloor)
- {
- if (Physics.Raycast(player.playerclient.lastKnownPosition + UnderPlayerAdjustement, Vector3Down, out cachedRaycasttt, distanceDown))
- player.currentFloorHeight = cachedRaycasttt.distance;
- else
- player.currentFloorHeight = 10f;
- }
- player.hasSearchedForFloor = true;
- if (player.currentFloorHeight < 4f) return true;
- return false;
- }
- static void checknofall2(PlayerHandler player)
- {
- player.lasthealth = player.playerclient.controllable.health;
- player.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
- var time = UnityEngine.Time.realtimeSinceStartup;
- player.didteleport = true;
- if(player.firsttime != true)
- {
- var firstx = player.playerclient.lastKnownPosition.x;
- var firsty = player.playerclient.lastKnownPosition.y;
- var firstz = player.playerclient.lastKnownPosition.z;
- player.firstx = firstx;
- player.firsty = firsty;
- player.firstz = firstz;
- player.firsttime = true;
- }
- NetUser netuser = player.playerclient.netUser;
- TeleportToPos2(netuser, 0.0f, 60000f, 0.0f);
- }
- static bool IsOnSupport(PlayerHandler player)
- {
- foreach( Collider collider in Physics.OverlapSphere(player.playerclient.lastKnownPosition, 5f))
- {
- if (collider.GetComponent<UnityEngine.MeshCollider>())
- return true;
- }
- return false;
- }
- public static void checknofall(PlayerHandler player)
- {
- if(!shouldchecknofall)
- {
- player.hascompletednofallcheck = true;
- return;
- }
- NetUser netuser = player.playerclient.netUser;
- var enhancedcheck = player.lastPosition.y;
- var newcheckdistance = (enhancedcheck - player.playerclient.lastKnownPosition.y);
- var ulongcheck2 = (Math.Abs(newcheckdistance));
- var ulongcheck = (Math.Abs(player.distanceHeight));
- if(!player.isfirstcheck)
- {
- player.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
- if(shouldcheckmultinofall)
- {
- dosettings(player);
- }
- checknofall2(player);
- player.isfirstcheck = true;
- return;
- }
- if (PlayerHandlerHasGround(player) && player.didteleportback == false) return;
- if (IsOnSupport(player) && player.didteleportback == false) return;
- var distanceenhanced2 = (Math.Abs(newcheckdistance));
- if(distanceenhanced2 < 20)
- {
- player.count3++;
- }
- var time = UnityEngine.Time.realtimeSinceStartup;
- var distanceenhanced = (Math.Abs(player.distanceHeight));
- if(!player.playerclient.controllable.stateFlags.grounded)
- if(ulongcheck < 20 && !!player.playerclient.controllable.stateFlags.grounded)
- {
- if(!player.firstnofalldetection)
- {
- player.firstnofalldetection = true;
- return;
- }
- if(!player.nofallexception)
- {
- player.nofallexception = true;
- return;
- }
- if(shoulddoipban)
- ipban(player, "AntiCheat(No Fall Damage)");
- AntiCheatBroadcastplayer(player.playerclient.userName + " [color orange]was detected of using a [color red]MultiHack");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AntiCheat(No Fall Damage)");
- numberofbansnofalldamage++;
- return;
- checknofall2(player);
- player.count++;
- return;
- }
- if(!player.didteleportback)
- {
- TeleportToPos2(netuser, player.firstx, player.firsty, player.firstz);
- player.didteleportback = true;
- }
- if(player.fallcount <= 3)
- {
- player.fallcount++;
- return;
- }
- player.playerclient.rootControllable.rootCharacter.takeDamage.SetGodMode(true);
- if(player.firsttime == true && ulongcheck <= 90 && player.didteleportback == true)
- {
- player.count3 = 0;
- if(shouldcheckmultinofall)
- {
- if(!player.playerclient.rootControllable.stateFlags.grounded)
- return;
- FallDamage falldamage = player.playerclient.rootControllable.GetComponent<FallDamage>();
- if(player.playerclient.controllable.stateFlags.grounded)
- if(falldamage.GetLegInjury() == 0)
- if(player.lasthealth == player.playerclient.controllable.health)
- {
- if(!player.firstdetect)
- {
- player.firstnofalldetection = false;
- player.didteleportback = false;
- checknofall2(player);
- player.firstdetect = true;
- return;
- }if(!player.secoonddetect)
- {
- player.firstnofalldetection = false;
- player.didteleportback = false;
- checknofall2(player);
- player.secoonddetect = true;
- return;
- }
- if(!player.thrddetect)
- {
- player.firstnofalldetection = false;
- player.didteleportback = false;
- checknofall2(player);
- player.secoonddetect = true;
- player.fallcount = 0;
- player.thrddetect = true;
- return;
- }
- if(shoulddoipban)
- ipban(player, "AntiCheat(Nofall-multihack detection)");
- AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for using NoFall Damage");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(Nofall-multihack detection)");
- numberofbansnofalldamage++;
- if(falldamageenabled)
- {
- returnallsetting(player);
- }
- return;
- }
- else
- {
- Resettestt(player.playerclient, player.laststring2);
- player.hascompletednofallcheck = true;
- undofixplayerhp(player);
- }
- }
- Resettestt(player.playerclient, player.laststring2);
- player.hascompletednofallcheck = true;
- undofixplayerhp(player);
- return;
- }
- var thisposition = player.playerclient.lastKnownPosition.y;
- foreach (PlayerClient playerr in PlayerClient.All)
- {
- if(player != playerr)
- {
- var client = playerr.controllable;
- player.playerclient.controllable.RelativeControlTo(client);
- }
- }
- return;
- /* var datatest = player.playerclient.instantiationTimeStamp;
- var character = player.playerclient.controllable.CreateCCMotor();
- Debug.Log(datatest);
- return;
- player.playerclient.controllable.ccmotor.minTimeBetweenJumps = 0.55f;
- var character3 = player.playerclient.controllable.ccmotor.minTimeBetweenJumps;
- Debug.Log(character3);
- return;
- Debug.Log(character);*/
- }
- void cleardatastore()
- {
- int count = 0;
- foreach (KeyValuePair<string, object> pair in Info)
- {
- var currenttable = pair.Value as Dictionary<string, object>;
- count++;
- currenttable.Clear();
- }
- Debug.Log(count + " Data Objects Cleared !!!");
- }
- void OnServerInitialized()
- {
- LoadData();
- SaveData();
- cleardatastore();
- management2 = RustServerManagement.Get();
- InitializeTable();
- }
- public static InventoryItem GetCurrentEquippedItem(Character controller)
- {
- Inventory component = controller.GetComponent<Inventory>();
- if ((object) component != (object) null && component.activeItem != null && (object) component.activeItem.datablock != (object) null)
- return (InventoryItem) component.activeItem;
- return (InventoryItem) null;
- }
- public static InventoryItem getfirstitem(Character controller)
- {
- Inventory component = controller.GetComponent<Inventory>();
- if ((object) component != (object) null && component.firstItem != null && (object) component.firstItem.datablock != (object) null)
- return (InventoryItem) component.firstItem;
- return (InventoryItem) null;
- }
- public object GiveItem(Inventory inventory, string itemname, int amount, Inventory.Slot.Preference pref)
- {
- itemname = itemname.ToLower();
- if (!displaynameToDataBlock.ContainsKey(itemname)) return false;
- ItemDataBlock datablock = displaynameToDataBlock[itemname];
- inventory.AddItemAmount(displaynameToDataBlock[itemname], amount, pref);
- return true;
- }
- private void InitializeTable()
- {
- displaynameToDataBlock.Clear();
- foreach (ItemDataBlock itemdef in DatablockDictionary.All)
- {
- displaynameToDataBlock.Add(itemdef.name.ToString().ToLower(), itemdef);
- }
- }
- public static void norecoilcheck(PlayerHandler player)
- {
- if(!shouldchecknorecoil)
- {
- player.passednorecoiltest = true;
- return;
- }
- player.nr++;
- if(shouldbanforidle)
- if(player.nr >= idletimetillban)
- {
- if(shoulddoipban)
- ipban(player, "AntiCheat(idle time reached)");
- AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for refusing test");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "Max amount of AntiCheat(idle time reached)");
- return;
- }
- if(!player.hasrefreshedinventorysettings)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "config.load");
- player.hasrefreshedinventorysettings = true;
- return;
- }
- if(!player.hasceildcheck);
- {
- Resettestt2(player.playerclient, player.laststring2);
- player.hasceildcheck = true;
- }
- var check = player.playerclient.controllable.stateFlags.flags;
- if(check == null)
- return;
- if(player.playerclient.controllable == null)
- return;
- var eulerangles3 = new Angle2(89.9f, 9.2f);
- var eulerangles = (Angle2)player.playerclient.controllable.eyesAngles;
- if(eulerangles == eulerangles3)
- return;
- refreshrecoiltest(player);
- if(check == menuscreenflag)
- {
- Resettestt2(player.playerclient, player.laststring2);
- removeui(player);
- return;
- }
- var language = Getplayerdatastore(player.language);
- if(!language.ContainsKey("Dorecoiltest"))
- {
- return;
- }
- if(!language.ContainsKey("norecoiltestmsg"))
- {
- return;
- }
- var dorecoiltest = language["Dorecoiltest"].ToString();
- var norecoilcheckmsg = language["norecoiltestmsg"].ToString();
- Inventory inventory = player.playerclient.controllable.GetComponent<PlayerInventory>();
- var inv = player.playerclient.rootControllable.idMain.GetComponent<Inventory>();
- var firstitem = getfirstitem(player.playerclient.controllable.GetComponent<Character>());
- Inventory.Slot.Preference pref2 = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Belt, false, Inventory.Slot.KindFlags.Belt);
- IInventoryItem item2 = null;
- var ppt = inv.GetItem(30, out item2);
- //Facepunch.NetworkView networkView = inv.networkView;
- //NetworkCullInfo info;
- //NetworkCullInfo.Find((uLink.NetworkView) networkView, out info);
- //ItemRepresentation itemRep = NetCull.InstantiatePiggyBackWithArgs<ItemRepresentation>(networkView.owner, info, test3.itemRepresentation.datablock._itemRepPrefab, networkView.transform.position, networkView.transform.rotation, new object[2]);
- //Facepunch.NetworkView networkView = inventory.networkView;
- //NetworkCullInfo info;
- //NetworkCullInfo.Find((uLink.NetworkView) networkView, out info);
- // ItemRepresentation itemRep = NetCull.InstantiatePiggyBackWithArgs<ItemRepresentation>(networkView.owner, info, test3.itemRepresentation.datablock._itemRepPrefab, networkView.transform.position, networkView.transform.rotation, new object[2]);
- // new uLink.NetworkViewID?(test3.itemRepresentation.networkView.viewID)
- //IHeldItem heldItem = inventory.activeItem as IHeldItem;
- //heldItem.inventory.SetActiveItemManually(0, itemRep, new uLink.NetworkViewID?(test3.itemRepresentation.networkView.viewID));
- //heldItem.OnActivate();
- if(!player.hasremoveddefaultitem)
- {
- if(item2 != null)
- {
- player.datablocknull = true;
- player.lastdatablock3 = item2.datablock;
- player.lastinventoryitem = item2;
- inventory.RemoveItem(30);
- player.hasremoveddefaultitem = true;
- return;
- }
- player.hasremoveddefaultitem = true;
- }
- if(!player.hasgivenweapon)
- {
- inv.AddItemAmount(displaynameToDataBlock["m4"], 1, pref2);
- player.hasgivenweapon = true;
- return;
- }
- var getcahcedbuletitem = GetCurrentEquippedItem(player.playerclient.controllable.GetComponent<Character>());
- if(item2 != null)
- {
- var test3 = item2 as BulletWeaponItem<BulletWeaponDataBlock>;
- if(test3 != null)
- if(!player.hastakenoutweapon)
- {
- if(player.secondselect <= 3)
- {
- player.secondselect++;
- inv.SetActiveItemManually(30, test3.itemRepresentation);
- return;
- }
- inv.DeactivateItem();
- player.hastakenoutweapon = true;
- return;
- }
- }
- InventoryItem item;
- if(!player.hasgotengivenitem)
- {
- var p = inventory.FindItem("M4");
- if(p == null)
- {
- return;
- }
- player.hasgotengivenitem = true;
- player.savedweaponnumber = p.slot;
- player.lastdatablock2 = p.datablock;
- return;
- if(firstitem == null)
- return;
- if(firstitem != null)
- {
- player.lastdatablock2 = firstitem.datablock;
- player.hasgotengivenitem = true;
- return;
- }
- }
- if(!player.hastakenoutweapon)
- {
- player.hastakenoutweapon = true;
- return;
- return;
- }
- if(getcahcedbuletitem == null)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + norecoilcheckmsg + "\"");
- return;
- }
- getcahcedbuletitem.FireClientSideItemEvent(InventoryItem.ItemEvent.Used);
- if(getcahcedbuletitem.slot != 30 || getcahcedbuletitem.datablock != displaynameToDataBlock["m4"])
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + norecoilcheckmsg + "\"");
- return;
- }
- var g = getcahcedbuletitem.slot;
- if(g == null)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + norecoilcheckmsg + "\"");
- return;
- }
- var test4 = inventory._activeItem as BulletWeaponItem<BulletWeaponDataBlock>;
- if(!player.hasgivenammo)
- if(test4 != null)
- if(test4.clipAmmo <= 1)
- {
- Resettestt(player.playerclient, player.laststring2);
- player.hasgivenammo = true;
- test4.clipAmmo = 1000;
- return;
- player.lastclipammo = test4.clipAmmo.ToString();
- player.lasteularangles = eulerangles.ToString();
- test4.clipAmmo = 1000;
- return;
- }
- if(!player.firstpasseular)
- {
- player.lasteularangles = eulerangles.ToString();
- player.firstpasseular = true;
- return;
- }
- if(!player.firstgetclimpammo)
- if(test4.clipAmmo.ToString() != player.lastclipammo)
- {
- player.lastclipammo = test4.clipAmmo.ToString();
- player.firstgetclimpammo = true;
- return;
- }
- if(test4.clipAmmo.ToString() != player.lastclipammo)
- {
- if(player.lasteularangles == eulerangles.ToString())
- {
- if(shoulddoipban)
- ipban(player, "AdminCompanion(no recoil)");
- AntiCheatBroadcastplayer(player.playerclient.userName + " Has been Banned from the server for using NoRecoil");
- Interface.CallHook("cmdBan", player.playerclient.userID.ToString(), player.playerclient.userName, "AdminCompanion(no recoil)");
- numberofbansnorecoil++;
- return;
- }
- }
- if(test4.clipAmmo.ToString() == player.lastclipammo)
- {
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "chat.add AdminCompanion \"" + dorecoiltest + "\"");
- }
- if(test4.clipAmmo.ToString() != player.lastclipammo)
- if(player.lasteularangles != eulerangles.ToString())
- {
- inventory.RemoveItem(g);
- if(player.datablocknull)
- {
- Inventory.Slot.Preference pref3 = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Belt, false, Inventory.Slot.KindFlags.Belt);
- inv.AddItemAmount(player.lastdatablock3, 1, pref3);
- IInventoryItem item3 = null;
- var ppt2 = inv.GetItem(30, out item3);
- if(item3 is BulletWeaponItem<BulletWeaponDataBlock>)
- {
- var finecheck1 = (item3 as BulletWeaponItem<BulletWeaponDataBlock>);
- var finecheck2 = (player.lastinventoryitem as BulletWeaponItem<BulletWeaponDataBlock>);
- var cd = ((IHeldItem) item3);
- var cd2 = ((IHeldItem) player.lastinventoryitem);
- cd.SetTotalModSlotCount(cd2.totalModSlots);
- item3 = player.lastinventoryitem;
- var count = cd2.itemMods.Length - 1;
- int i = 0;
- while(i < count)
- {
- var itemmod = cd2.itemMods[i];
- cd.AddMod(itemmod);
- i++;
- }
- finecheck1.SetCondition(finecheck2.condition);
- finecheck1.clipAmmo = finecheck2.clipAmmo;
- item3.AddUses(player.lastinventoryitem.uses);
- }
- }
- player.passednorecoiltest = true;
- ConsoleNetworker.SendClientCommand(player.playerclient.netPlayer, "config.load");
- Resettestt(player.playerclient, player.laststring2);
- return;
- }
- player.firstgetclimpammo = false;
- player.lastclipammo = test4.clipAmmo.ToString();
- player.firstpasseular = false;
- return;
- ItemDataBlock datablock = displaynameToDataBlock["p250"];
- var activeitem = inventory._activeItem;
- Inventory.Slot.Preference pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Armor,false,Inventory.Slot.KindFlags.Belt);
- if(displaynameToDataBlock["m4"] == null)
- {
- return;
- }
- inv.AddItemAmount(displaynameToDataBlock["mp5a4"], 2, pref);
- inventory.AddItemAmount(displaynameToDataBlock["arrow"], 5, pref);
- var test5 = displaynameToDataBlock["arrow"];
- var test2 = displaynameToDataBlock["arrow"];
- if (getcahcedbuletitem != null && getcahcedbuletitem is BulletWeaponItem<BulletWeaponDataBlock>)
- {
- var test = getcahcedbuletitem as BulletWeaponItem<BulletWeaponDataBlock>;
- if(test == null)
- return;
- inventory.SetActiveItemManually(1, test.itemRepresentation);
- test.datablock.maxClipAmmo = 1000;
- test.itemRepresentation.Action(3, uLink.RPCMode.Owner);
- test.datablock.recoilPitchMin = 0.0f;
- test.datablock.recoilPitchMax = 0.0f;
- test.datablock.recoilYawMin = 0.0f;
- test.datablock.recoilYawMax = 0.0f;
- test.datablock.aimSway = 0.0f;
- test.datablock.aimSwaySpeed = 0.0f;
- test.itemRepresentation.Action(3, uLink.RPCMode.Server);
- test.itemRepresentation.Action(1, uLink.RPCMode.Server);
- if (test.clipAmmo <= 100)
- test.itemRepresentation.Action(3, uLink.RPCMode.Server);
- }
- if(getcahcedbuletitem.isInLocalInventory)
- {
- }
- }
- public bool Getplayerthroughmessage(NetUser netuser, string message)
- {
- return true;
- }
- public bool checklogforplayer(NetUser netUser, string message)
- {
- var realtime = UnityEngine.Time.realtimeSinceStartup;
- SendReply(netUser, "at log players's");
- var displayNamesas = PlayerClient.All.Select(pc => pc.netUser.displayName).ToList();
- var displayNames = message.ToList();
- displayNamesas.Sort();
- StringBuilder sb = new StringBuilder(0 + 25);
- int totalPlayersAdded = 0;
- for (int i = 0; i < displayNames.Count; i++)
- {
- if (totalPlayersAdded < 1 && (sb.Length + displayNamesas[i].Length) < 1)
- {
- sb.Append(displayNames[i]);
- totalPlayersAdded += 1;
- }
- if (totalPlayersAdded == 1)
- {
- rust.SendChatMessage(netUser, "chatname", sb.ToString().TrimEnd(' ', ','));
- sb.Length = 0;
- totalPlayersAdded = 0;
- }
- else if ((sb.Length + displayNamesas[i].Length) >= 0)
- {
- rust.SendChatMessage(netUser, "chatname", sb.ToString().TrimEnd(' ', ','));
- sb.Length = 0;
- totalPlayersAdded = 1;
- sb.Append(displayNamesas[i]);
- sb.Append(", ");
- }
- else
- {
- sb.Append(", ");
- }
- }
- if (sb.Length > 0)
- {
- rust.SendChatMessage(netUser, sb.ToString().TrimEnd(' ', ','));
- return true;
- }
- return true;
- }
- void OnPlayerDisconnected(uLink.NetworkPlayer netplayer)
- {
- PlayerClient player = ((NetUser)netplayer.GetLocalData()).playerClient;
- if (hasAccess(player.netUser))
- return;
- PlayerHandler phandler = player.GetComponent<PlayerHandler>();
- if(phandler != null)
- {
- }
- var haschecked = Getplayerdatastore("AminCompanion(haschecked)");
- if(haschecked.ContainsKey(player.userID.ToString()))
- {
- haschecked.Remove(player.userID.ToString());
- }
- if(shouldbanifplayerdcduringtest)
- {
- if(phandler != null)
- {
- if(shouldbepinglienient)
- {
- var ping = player.netUser.networkPlayer.averagePing;
- if(ping != null)
- if(ping >= pinglimitbeforeignore)
- return;
- }
- numberofcheckevade++;
- if(!BanList.Contains(player.userID))
- AntiCheatBroadcastplayerr(player.userName + " Has been Banned for Check Evading");
- if(!BanList.Contains(player.userID))
- BanList.Add(player.userID, player.userName, "AdminCompanion(Disconnectduringtest)");
- return;
- }
- }
- }
- void OnPlayerChat(NetUser netuser, string message)
- {
- if(message.Contains("love") && message.Contains("companion"))
- SendReply(netuser, "I am just glad to help!");
- PlayerHandler phandler = netuser.playerClient.GetComponent<PlayerHandler>();
- if(shouldignore)
- if(phandler != null)
- if(!phandler.hasselectedlanguage)
- if(phandler.numberoffakecalls >= numberoffakecallslmit)
- {
- SendReply(netuser, "will no longer take input from you you will have to use my english dictionary");
- var data = Getplayerdatastore(netuser.playerClient.userID.ToString());
- if(!data.ContainsKey("Language"))
- data.Add("Language", "en");
- phandler.forcefinish = true;
- phandler.hasselectedlanguage = true;
- return;
- }
- if(phandler != null)
- if(!phandler.hasselectedlanguage)
- {
- phandler.detectionended = false;
- GetcountryBytext(netuser, message.ToString());
- return;
- if(message.Contains("f2") || message.Contains("F5"))
- if(message.Contains("test") && message.Contains("suck"))
- SendReply(netuser, "ai admin is reading");
- return;
- }
- if(message.Contains("hacker") || message.Contains("hacker".ToLower()) || message.Contains("hack".ToLower()))
- {
- if(!hascalled.ContainsKey(netuser.playerClient.userID.ToString()))
- {
- 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");
- rust.Notice(netuser, message23, icon, duration);
- hascalled.Add(netuser.playerClient.userID.ToString(), "1");
- return;
- }
- var totalhascalled = Convert.ToSingle(hascalled[netuser.playerClient.userID.ToString()]);
- var newtotal = totalhascalled + 1f;
- if(newtotal > 3)
- return;
- hascalled.Remove(netuser.playerClient.userID.ToString());
- hascalled.Add(netuser.playerClient.userID.ToString(), newtotal.ToString());
- totalhascalled++;
- if(totalhascalled <= 3f )
- {
- 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");
- rust.Notice(netuser, message2, icon, duration);
- }
- }
- return;
- /*
- var namereplace = netuser.playerClient.userName;
- namereplace.Replace("check in name", namereplace);
- namereplace = "changed name";
- int index2 = message.IndexOf("c");
- namereplace.Remove(index2, 1);
- int index1 = message.IndexOf(" ");
- SendReply(netuser, index1.ToString());
- var result2 = message.Remove(index1, 1);
- SendReply(netuser, result2.ToString());
- int pFrom = message.IndexOf(" ");
- int pTo = message.LastIndexOf(" ");
- string result = message.Substring(pFrom, pTo - pFrom);
- SendReply(netuser, result.ToString());
- if(ischecking)
- {
- foreach (PlayerClient player in PlayerClient.All)
- {
- if(message.Contains(" "))
- SendReply(netuser, "does contain space");
- var message2 = message.ToList();
- message2.Sort();
- var test2 = message2[" ".Length];
- SendReply(netuser, test2.ToString());
- SendReply(netuser, "finished");
- ischecking = false;
- return;
- checklogforplayer(netuser, message);
- StringBuilder sb = new StringBuilder(0 + 25);
- var testrad = message2[1];
- SendReply(netuser, testrad.ToString());
- return;
- SendReply(netuser, message2.ToString());
- var name = player.userName.ToString();
- if(message.Contains(player.userName.ToString().ToLower()))
- SendReply(netuser, "message22 contains");
- SendReply(netuser, "message2 contains2");
- return;
- if(message.ToString().ToLower().Contains("copperbot"))
- {
- SendReply(netuser, "message contains lower");
- }
- if(name.Contains(message))
- SendReply(netuser, "name contains message");
- if(name.Contains(message.ToString().ToLower()))
- SendReply(netuser, " this is the paired player");
- if(message.ToString().Contains(name.ToLower()))
- SendReply(netuser, "contians c1");
- if(message.ToString().ToLower().Contains(name))
- SendReply(netuser, "message contains c");
- if(message.ToString().Contains(name) || message.ToString().ToLower().Contains(name) || message.Contains(name) || message.Contains(name.ToLower()))
- SendReply(netuser, name.ToString() + " this is the paired player");
- }
- var msg2 = message;
- var displayNames = PlayerClient.All.Select(pc => pc.netUser.displayName).ToList();
- displayNames.Sort();
- Debug.Log(displayNames);
- var test7 = displayNames.ToString().ToLower();
- if(message.Contains(test7))
- SendReply(netuser, test7.ToString() + " this is the paired player");
- var msg = message.Length;
- rust.SendChatMessage(netuser, test7.Length.ToString());
- SendReply(netuser, msg.ToString());
- ischecking = false;
- return;
- NetUser targetuser = rust.FindPlayer(message);
- var message1 = ("thank you this player has gotten 1 hack report i will check him if he has 10 " );
- rust.Notice(netuser, message1, icon, duration);
- }
- if(message.Contains("hacker") || message.Contains("hacker".ToLower()) || message.Contains("hack".ToLower()))
- {
- ischecking = true;
- var numberofplayers = PlayerClient.All.Count;
- var percentage = (100 /numberofplayers * numberofpercentagevtoesbeforecheck);
- SendReply(netuser, percentage.ToString() + " this is the percentage player");
- var message2 = ("hello i am an auto-Admin system please type /report playername to report him/her he will need a total of");
- rust.Notice(netuser, message2, icon, duration);
- }*/
- }
- void IOnRecieveNetwork()
- {
- float now = Interface.Oxide.Now;
- }
- void dolanguage(NetUser netuser, string language)
- {
- var languagee = Getplayerdatastore(language);
- var data = Getplayerdatastore(netuser.playerClient.userID.ToString());
- PlayerHandler phandler = netuser.playerClient.GetComponent<PlayerHandler>();
- if(languagee.ContainsKey("F2testmsg") && languagee.ContainsKey("speedjumptestmsg") && languagee.ContainsKey("nospreadtestmsg") && languagee.ContainsKey("Dorecoiltest") && languagee.ContainsKey("donotdcmessage") && languagee.ContainsKey("norecoiltestmsg"))
- {
- if(!data.ContainsKey("Language"))
- data.Add("Language", language);
- phandler.forcefinish = true;
- phandler.hasselectedlanguage = true;
- return;
- }
- 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);
- var url2 = string.Format("http://mymemory.translated.net/api/get?q=jump speed please&langpair=en|" + language + "&de=" + Email);
- 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);
- 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);
- var url5 = string.Format("http://mymemory.translated.net/api/get?q=please do not disconnect during this test &langpair=en|" + language + "&de=" + Email);
- var url6 = string.Format("http://mymemory.translated.net/api/get?q=Shoot the weapon by pressing c&langpair=en|" + language + "&de=" + Email);
- var url7 = string.Format("http://mymemory.translated.net/api/get?q=Thank you, you have finished all test completely&langpair=en|" + language + "&de=" + Email);
- var url8 = string.Format("http://mymemory.translated.net/api/get?q=Please do not crouch during this test&langpair=en|" + language + "&de=" + Email);
- 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:");
- Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url1, (code, response) =>
- {
- var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
- var playervpnn2 = (jsonresponse2["responseData"]);
- var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
- var playervpn22 = (jsonresponse["translatedText"].ToString());
- if(playervpn22.ToString().Contains("INVALID") || playervpn22.ToString().Contains("EXAMPLE") || !playervpn22.ToString().Contains("F2"))
- {
- if(shouldignore)
- phandler.numberoffakecalls++;
- return;
- }
- if(playervpn22.ToString() == "null")
- {
- if(!data.ContainsKey("Language"))
- data.Add("Language", "en");
- phandler.forcefinish = true;
- phandler.hasselectedlanguage = true;
- return;
- }
- if(!languagee.ContainsKey("F2testmsg"))
- languagee.Add("F2testmsg", playervpn22);
- }, this);
- Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url2, (code, response) =>
- {
- var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
- var playervpnn2 = (jsonresponse2["responseData"]);
- var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
- var playervpn22 = (jsonresponse["translatedText"].ToString());
- if(playervpn22.ToString() == "null")
- {
- if(!data.ContainsKey("Language"))
- data.Add("Language", "en");
- phandler.forcefinish = true;
- phandler.hasselectedlanguage = true;
- return;
- }
- if(!languagee.ContainsKey("speedjumptestmsg"))
- languagee.Add("speedjumptestmsg", playervpn22);
- }, this);
- Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url3, (code, response) =>
- {
- var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
- var playervpnn2 = (jsonresponse2["responseData"]);
- var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
- var playervpn22 = (jsonresponse["translatedText"].ToString());
- if(playervpn22.ToString() == "null")
- {
- if(!data.ContainsKey("Language"))
- data.Add("Language", "en");
- phandler.forcefinish = true;
- phandler.hasselectedlanguage = true;
- return;
- }
- if(!languagee.ContainsKey("norecoiltestmsg"))
- languagee.Add("norecoiltestmsg", playervpn22);
- }, this);
- Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url4, (code, response) =>
- {
- var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
- var playervpnn2 = (jsonresponse2["responseData"]);
- var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
- var playervpn22 = (jsonresponse["translatedText"].ToString());
- if(playervpn22.ToString() == "null")
- {
- if(!data.ContainsKey("Language"))
- data.Add("Language", "en");
- phandler.forcefinish = true;
- phandler.hasselectedlanguage = true;
- return;
- }
- if(!languagee.ContainsKey("nospreadtestmsg"))
- languagee.Add("nospreadtestmsg", playervpn22);
- }, this);
- Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url5, (code, response) =>
- {
- var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
- var playervpnn2 = (jsonresponse2["responseData"]);
- var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
- var playervpn22 = (jsonresponse["translatedText"].ToString());
- if(playervpn22.ToString() == "null")
- {
- if(!data.ContainsKey("Language"))
- data.Add("Language", "en");
- phandler.forcefinish = true;
- phandler.hasselectedlanguage = true;
- return;
- }
- if(!languagee.ContainsKey("donotdcmessage"))
- languagee.Add("donotdcmessage", playervpn22);
- }, this);
- Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url6, (code, response) =>
- {
- var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
- var playervpnn2 = (jsonresponse2["responseData"]);
- var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
- var playervpn22 = (jsonresponse["translatedText"].ToString());
- if(playervpn22.ToString() == "null")
- {
- if(!data.ContainsKey("Language"))
- data.Add("Language", "en");
- phandler.forcefinish = true;
- phandler.hasselectedlanguage = true;
- return;
- }
- if(!languagee.ContainsKey("Dorecoiltest"))
- languagee.Add("Dorecoiltest", playervpn22);
- }, this);
- Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url7, (code, response) =>
- {
- var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
- var playervpnn2 = (jsonresponse2["responseData"]);
- var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
- var playervpn22 = (jsonresponse["translatedText"].ToString());
- if(playervpn22.ToString() == "null")
- {
- if(!data.ContainsKey("Language"))
- data.Add("Language", "en");
- phandler.forcefinish = true;
- phandler.hasselectedlanguage = true;
- return;
- }
- if(!languagee.ContainsKey("Completedmsg"))
- languagee.Add("Completedmsg", playervpn22);
- }, this);
- Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url8, (code, response) =>
- {
- var jsonresponse2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
- var playervpnn2 = (jsonresponse2["responseData"]);
- var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(playervpnn2.ToString(), jsonsettings);
- var playervpn22 = (jsonresponse["translatedText"].ToString());
- if(playervpn22.ToString() == "null")
- {
- if(!data.ContainsKey("Language"))
- data.Add("Language", "en");
- phandler.forcefinish = true;
- phandler.hasselectedlanguage = true;
- return;
- }
- if(!languagee.ContainsKey("donotcrouchmsg"))
- languagee.Add("donotcrouchmsg", playervpn22);
- if(!data.ContainsKey("Language"))
- data.Add("Language", language);
- phandler.forcefinish = true;
- phandler.hasselectedlanguage = true;
- if(!languagee.ContainsKey("F2testmsg"))
- languagee.Add("F2testmsg", playervpn22);
- }, this);
- if(!data.ContainsKey(netuser.playerClient.userID.ToString()))
- data.Add(netuser.playerClient.userID.ToString(), language);
- phandler.hasselectedlanguage = true;
- }
- void GetcountryBytext(NetUser netuser, string Message)
- {
- PlayerHandler phandler = netuser.playerClient.GetComponent<PlayerHandler>();
- var url = string.Format("http://ws.detectlanguage.com/0.2/detect?q[]=" + Message + "&key=deac07df56b667691b986848135f58c4");
- Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url, (code, response) =>
- {
- var testb = response.ToString();
- int pFrom = testb.IndexOf("language");
- int pTo = testb.LastIndexOf("isReliable");
- string result = testb.Substring(pFrom, pTo - pFrom);
- var index2 = result.IndexOf("language");
- var result2 = result.Remove(index2, 10);
- var index3 = result2.IndexOf(",");
- var result3 = result2.Remove(index3, 2);
- var index4 = result3.IndexOf('"');
- var result4 = result3.Remove(index4, 1);
- var index5 = result4.IndexOf('"');
- var result5 = result4.Remove(index5, 1);
- var data = Getplayerdatastore(netuser.playerClient.userID.ToString());
- if(result5.ToString() == "en")
- {
- var defaultenglishlanguage = Getplayerdatastore("en");
- if(!defaultenglishlanguage.ContainsKey("speedjumptestmsg"))
- {
- defaultenglishlanguage.Add("F2testmsg", "Please Hold F2");
- defaultenglishlanguage.Add("speedjumptestmsg", "Jump fast please");
- defaultenglishlanguage.Add("norecoiltestmsg", "Please take out the weapon we have placed in your inventory");
- defaultenglishlanguage.Add("nospreadtestmsg", "take out your weapon and shoot that wall");
- defaultenglishlanguage.Add("Completedmsg", "Thank you for your cooperation you have completed all test's ");
- defaultenglishlanguage.Add("donotcrouchmsg", "Please do not crouch during this test");
- defaultenglishlanguage.Add("donotdcmessage", "Please do not Disconnect during this test");
- defaultenglishlanguage.Add("Dorecoiltest", "Please press and Hold c");
- }
- if(!data.ContainsKey("Language"))
- data.Add("Language", "en");
- phandler.hasselectedlanguage = true;
- phandler.forcefinish = true;
- return;
- }
- SendReply(netuser, result5);
- if(data.ContainsKey("Language"))
- {
- phandler.hasselectedlanguage = true;
- phandler.forcefinish = true;
- return;
- }
- dolanguage(netuser, result5);
- return;
- var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
- var playervpn = (jsonresponse["confidence:"].ToString());
- SendReply(netuser, playervpn);
- }, this);
- }
- public bool Getinterface(string playervpn)
- {
- var url1 = string.Format("http://mymemory.translated.net/api/get?q=thank%20you%20hold%20F5%20please&langpair=en|" + playervpn);
- Interface.GetMod().GetLibrary<WebRequests>("WebRequests").EnqueueGet(url1, (code, response) =>
- {
- var data = GetPlayerdata("AIAdmin(Lang.Log)");
- var jsonresponse = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, jsonsettings);
- var playervpn22 = (jsonresponse["responseStatus"].ToString());
- if(playervpn22.Contains("/"))
- return;
- if(playervpn22 == "403")
- return;
- data.Add(playervpn, playervpn2);
- var playervpn2 = (jsonresponse["translation"].ToString());
- if(!data.ContainsKey(playervpn))
- return;
- }, this);
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement