protected virtual void OnPlayerConnected(SteamPlayer steamPlayer) { if (m_Users.Any(d => d.Player.SteamPlayer.Equals(steamPlayer))) { return; } var pending = m_PendingUsers.FirstOrDefault(d => d.SteamId == steamPlayer.playerID.steamID); if (pending != null) { FinishSession(pending); } var user = new UnturnedUser(this, m_UserDataStore, steamPlayer.player, pending); m_Users.Add(user); var connectedEvent = new UnturnedUserConnectedEvent(user); async UniTaskVoid EmitDelayedEvent(UnturnedUserConnectedEvent @event) { await UniTask.DelayFrame(1); await m_EventBus.EmitAsync(m_Runtime, this, @event); } EmitDelayedEvent(connectedEvent).Forget(); }
internal static bool CheckPermissions(SteamPlayer caller, string permission) { UnturnedPlayer player = caller.ToUnturnedPlayer(); Regex r = new Regex("^\\/[a-zA-Z]*"); string requestedCommand = r.Match(permission.ToLower()).Value.ToString().TrimStart('/').ToLower(); IRocketCommand command = R.Commands.GetCommand(requestedCommand); double cooldown = R.Commands.GetCooldown(player, command); if (command != null) { if (R.Permissions.HasPermission(player, command)) { if (cooldown > 0) { UnturnedChat.Say(player, R.Translate("command_cooldown", cooldown), Color.red); return false; } return true; } else { UnturnedChat.Say(player, R.Translate("command_no_permission"), Color.red); return false; } } else { UnturnedChat.Say(player, U.Translate("command_not_found"), Color.red); return false; } }
internal static bool CheckPermissions(SteamPlayer caller, string permission) { UnturnedPlayer player = caller.ToUnturnedPlayer(); Regex r = new Regex("^\\/[a-zA-Z]*"); string requestedCommand = r.Match(permission.ToLower()).Value.TrimStart('/').ToLower(); IRocketCommand command = R.Commands.GetCommand(requestedCommand); double cooldown = R.Commands.GetCooldown(player, command); if (command != null) { if (R.Permissions.HasPermission(player, command)) { if (cooldown > 0) { UnturnedChat.Say(player, R.Translate("command_cooldown", cooldown), Color.red); return(false); } return(true); } else { UnturnedChat.Say(player, R.Translate("command_no_permission"), Color.red); return(false); } } else { UnturnedChat.Say(player, U.Translate("command_not_found"), Color.red); return(false); } }
private void onChat(SteamPlayer player, EChatMode mode, ref Color chatted, ref bool isRich, string text, ref bool isVisible) { var converted = UnturnedPlayer.FromSteamPlayer(player); var webhook = Configuration.Instance.DiscordWebHookLink; var lower = text.ToLower(); var ip = SteamGameServer.GetPublicIP(); var address = ip.ToString(); if (Configuration.Instance.LogCommands.Any(w => lower.StartsWith($"/{w.name} "))) { if (webhook == "Discord Webhook Here") { return; } sendDiscordWebhook(webhook, ("{ \"username\": \"Command Log\", \"avatar_url\": \"https://i.imgur.com/4M34hi2.png\", \"embeds\": [ { \"title\": \"Command Executed\", \"color\": 15258703, \"fields\": [ { \"name\": \"Executer - !executer!\", \"value\": \"ExecuterID\", \"inline\": true }, { \"name\": \"Command:\", \"value\": \"*!args!*\" }, { \"name\": \"Server IP\", \"value\": \"!ip!\" } ], \"thumbnail\": { \"url\": \"https://i.pinimg.com/originals/1b/e8/41/1be84116e72d71bd6785c7050fefd2e3.gif\" }, \"image\": { \"url\": \"https://upload.wikimedia.org/wikipedia/commons/5/5a/A_picture_from_China_every_day_108.jpg\" }, \"footer\": { \"text\": \"CommandLog by ExoPlugins\", \"icon_url\": \"https://media.discordapp.net/attachments/811275497966665739/823878043906080778/image0.png?width=128&height=128\" } } ]}").Replace("!executer!", converted.DisplayName).Replace("*!args!*", $"`{lower}`").Replace("!ip!", address).Replace("ExecuterID", converted.Id)); } else if (Configuration.Instance.LogCommands.Any(w => lower.StartsWith($"/{w.name}"))) { if (webhook == "Discord Webhook Here") { return; } sendDiscordWebhook(webhook, ("{ \"username\": \"Command Log\", \"avatar_url\": \"https://i.imgur.com/4M34hi2.png\", \"embeds\": [ { \"title\": \"Command Executed\", \"color\": 15258703, \"fields\": [ { \"name\": \"Executer - !executer!\", \"value\": \"ExecuterID\", \"inline\": true }, { \"name\": \"Command:\", \"value\": \"*!args!*\" }, { \"name\": \"Server IP\", \"value\": \"!ip!\" } ], \"thumbnail\": { \"url\": \"https://i.pinimg.com/originals/1b/e8/41/1be84116e72d71bd6785c7050fefd2e3.gif\" }, \"image\": { \"url\": \"https://upload.wikimedia.org/wikipedia/commons/5/5a/A_picture_from_China_every_day_108.jpg\" }, \"footer\": { \"text\": \"CommandLog by ExoPlugins\", \"icon_url\": \"https://media.discordapp.net/attachments/811275497966665739/823878043906080778/image0.png?width=128&height=128\" } } ]}").Replace("!executer!", converted.DisplayName).Replace("*!args!*", $"`{lower}`").Replace("!ip!", address).Replace("ExecuterID", converted.Id)); } }
static void OnPlayerJoin(UnturnedPlayer player) { SteamPlayer steam = player.SteamPlayer(); if (GunGameConfig.instance.forceNoGroup && player.SteamGroupID != CSteamID.Nil) { steam.playerID.group = CSteamID.Nil; } if (GunGameConfig.instance.disableCosmetics) { steam.maskItem = 0; steam.hatItem = 0; steam.vestItem = 0; steam.shirtItem = 0; steam.pantsItem = 0; steam.glassesItem = 0; } if (GunGameConfig.instance.safezone.x != 0 && GunGameConfig.instance.safezone.y != 0 && GunGameConfig.instance.safezone.z != 0) { player.Teleport(GunGameConfig.instance.safezone.Vector3, GunGameConfig.instance.safezone.rot); } if (GunGameConfig.instance.maxSkills) { player.GunGamePlayer().MaxSkills(); } }
private async UniTask RequestExpirationThread(ulong recipientID, ulong requesterID, int lifetime) { await UniTask.Delay(TimeSpan.FromMilliseconds(lifetime)); if (!m_OpenRequests[recipientID].Contains(requesterID)) { return; } m_OpenRequests[recipientID].Remove(requesterID); SteamPlayer requester = PlayerTool.getSteamPlayer(requesterID); if (requester == null) { return; } SteamPlayer recipient = PlayerTool.getSteamPlayer(recipientID); if (recipient == null) { return; } await UniTask.SwitchToMainThread(); ChatManager.serverSendMessage(m_StringLocalizer["tpa:expired", new { Recipient = recipient.playerID.characterName }], Color.red, toPlayer: requester); }
public static JObject Generate_PlayerStatus(string message, SteamPlayer player, ServerSetting bot) { JObject obj = new JObject(); JArray arrEmbeds = new JArray(); JObject objEmbed = new JObject(); JObject objAuthor = new JObject(); JObject objFooter = new JObject(); objAuthor.Add("name", player.playerID.playerName); if (bot.LinkSenderProfile) { objAuthor.Add("url", "http://steamcommunity.com/profiles/" + player.playerID.steamID.ToString()); } objAuthor.Add("icon_url", UnturnedPlayer.FromSteamPlayer(player).SteamProfile.AvatarFull.AbsoluteUri); objFooter.Add("text", string.Format(DiscordHook.Instance.Translations.Instance["player_status_count"], DiscordHook.Players)); objEmbed.Add("title", DiscordHook.Instance.Translations.Instance["player_status_title"]); objEmbed.Add("description", message); objEmbed.Add("color", int.Parse(bot.ColorJoinLeave, NumberStyles.HexNumber)); if (bot.ShowPlayerCount) { objEmbed.Add("footer", objFooter); } objEmbed.Add("author", objAuthor); arrEmbeds.Add(objEmbed); obj.Add("username", DiscordHook.Instance.Configuration.Instance.ServerName); obj.Add("tts", false); obj.Add("embeds", arrEmbeds); return(obj); }
private static IEnumerator BanPlayerCoroutine(SteamPlayer executor, string target) { var ip = 0u; if (PlayerTool.tryGetSteamPlayer(target, out var steamPlayer)) { ip = steamPlayer.getIPv4AddressOrZero(); } PlayerTool.tryGetSteamID(target, out var cSteamID); var steamId = steamPlayer?.playerID.steamID ?? cSteamID; if (!steamId.IsValid()) { if (executor != null) { ChatManager.SendServerMessage("Target not found", executor, EChatMode.SAY); } else { CommandWindow.LogError("Target not found"); } yield break; } Provider.requestBanPlayer(Provider.server, steamId, ip, "Banned", SteamBlacklist.PERMANENT); var banData = new SocketData("BanPlayer", steamId.ToString()); SocketManager.Emit(banData); ChatManager.SendServerMessage("Banned target successfully", executor, EChatMode.SAY); yield return(null); }
private static void OnEnemyDisconnected(SteamPlayer steamPlayer) { var player = new Player(steamPlayer); var data = new SocketData("LeavePlayer", JsonConvert.SerializeObject(player)); SocketManager.Emit(data); }
public static bool isTarget(SteamPlayer Check) { if (Player.player.quests.isMemberOfAGroup) { if (Check.player.quests.groupID == Player.player.quests.groupID) { return(false); } } if (Global.AimSettings.ignoreSteamFriends) { if (!CurrentlySwapping) { if (FriendsCurrent.Contains(Check.playerID.steamID)) { return(false); } } else if (FriendsTemp.Contains(Check.playerID.steamID)) { return(false); } } return(true); }
public void OnGUI() { if ((MP_Aimbot.aimbot || MP_Aimbot.silentAim) && MP_Aimbot.attackNext != null && MP_Aimbot.drawTracer && !Variables.isSpying && Variables.isInGame) { SteamPlayer sp = (SteamPlayer)MP_Aimbot.attackNext; Player p = sp.player; Vector3 player_pos = MainCamera.instance.WorldToScreenPoint(p.gameObject.transform.position); player_pos.y = (Screen.height - player_pos.y); if (mat == null) { mat = new Material(Shader.Find("Hidden/Internal-Colored")); mat.hideFlags = HideFlags.HideAndDontSave; mat.SetInt("_SrcBlend", 5); mat.SetInt("_DstBlend", 10); mat.SetInt("_Cull", 0); mat.SetInt("_ZWrite", 0); } if (player_pos.z > 0) { GL.PushMatrix(); GL.Begin(1); mat.SetPass(0); GL.Color(Color.black); GL.Vertex3(Screen.width / 2, Screen.height / 2, 0); GL.Vertex3(player_pos.x, player_pos.y, 0); GL.End(); GL.PopMatrix(); } } }
public static void Prefix() { if (!Global.MiscSettings.ShowMapAll || Global.AllOff) { return; } Targets.Clear(); f.Clear(); for (int i = 0; i < Provider.clients.Count; i++) { SteamPlayer player2 = Provider.clients[i]; if ((player2.model != null) && (player2.playerID.steamID != Provider.client)) { Targets.Add(player2); } } if (!Player.player.quests.isMemberOfAGroup) { tempSwap = true; Toolkit.groupId.SetValue(Player.player.quests, new Steamworks.CSteamID(999999)); } foreach (SteamPlayer y in Targets) { f.Add((Steamworks.CSteamID)Toolkit.groupId.GetValue(y.player.quests)); Toolkit.groupId.SetValue(y.player.quests, Player.player.quests.groupID); } }
public static void EnableChams() { if (!ESPOptions.ChamsEnabled) { return; } Color32 friendly_front = ColorUtilities.getColor("_ChamsFriendVisible"); Color32 friendly_back = ColorUtilities.getColor("_ChamsFriendInvisible"); Color32 enemy_front = ColorUtilities.getColor("_ChamsEnemyVisible"); Color32 enemy_back = ColorUtilities.getColor("_ChamsEnemyInvisible"); SteamPlayer[] players = Provider.clients.ToArray(); for (int index = 0; index < players.Length; index++) { SteamPlayer p = players[index]; Color32 front = FriendUtilities.IsFriendly(p.player) ? friendly_front : enemy_front; Color32 back = FriendUtilities.IsFriendly(p.player) ? friendly_back : enemy_back; Player plr = p.player; if (plr == null || plr == OptimizationVariables.MainPlayer || plr.gameObject == null || plr.life == null || plr.life.isDead) { continue; } GameObject pgo = plr.gameObject; DoChamsGameObject(pgo, front, back); } }
private void OnEnemyConnected(SteamPlayer steamPlayer) { DisableHUDUnsafe(steamPlayer.playerID.steamID); SendUIEffectUnsafe(8498, 8490, steamPlayer.playerID.steamID, true); SendUIEffectTextUnsafe(8490, steamPlayer.playerID.steamID, true, "RoleValue", "WAITING"); SendUIEffectTextUnsafe(8490, steamPlayer.playerID.steamID, true, "TimerValue", "00:00"); }
protected virtual void OnCheckCommandPermissions(SteamPlayer steamPlayer, string text, ref bool shouldExecuteCommand, ref bool shouldList) { if (!text.StartsWith("/")) { return; } shouldList = false; shouldExecuteCommand = false; var args = ArgumentsParser.ParseArguments(text.Substring(1)); if (args.Length == 0) { return; } AsyncHelper.Schedule("Player command execution", async() => { var player = await m_UserManager.FindUserAsync(KnownActorTypes.Player, steamPlayer.playerID.steamID.ToString(), UserSearchMode.FindById); if (player == null) { return; } await m_CommandExecutor.ExecuteAsync(player, args, string.Empty); }); }
public static bool IsPlayerFriend(RaycastHit rch) { if (rch.transform != null && rch.transform.CompareTag("Enemy")) { SteamPlayer ply = null; foreach (var client in Provider.clients) { if (client.player.gameObject == rch.transform.gameObject) { ply = client; } else { ply = null; } } if (ply != null) { if (Friends.IsFriend(ply.playerID.steamID.m_SteamID)) { return(true); } return(false); } } return(false); }
private void OnPlayerDisconnected(SteamPlayer player) { if (EscortingPlayers.ContainsKey(player.playerID.steamID)) { CSteamID escorteeID; EscortingPlayers.TryGetValue(player.playerID.steamID, out escorteeID); if (!EscortingPlayers.TryGetValue(player.playerID.steamID, out escorteeID)) { return; } EscortingPlayers.Remove(player.playerID.steamID); EscortedPlayers.Remove(escorteeID); Player ply = PlayerTool.getPlayer(escorteeID); } else if (EscortedPlayers.ContainsKey(player.playerID.steamID)) { CSteamID escorterID; if (!EscortedPlayers.TryGetValue(player.playerID.steamID, out escorterID)) { return; } EscortedPlayers.Remove(player.playerID.steamID); EscortingPlayers.Remove(escorterID); } }
protected override void execute(CSteamID executorID, string parameter) { SteamPlayer player = PlayerTool.getSteamPlayer(executorID); List <InteractableVehicle> nearbyVehicles = new List <InteractableVehicle>(); VehicleManager.getVehiclesInRadius(player.player.movement.transform.position, 15f, nearbyVehicles); foreach (InteractableVehicle v in nearbyVehicles) { if (!v.isLocked) { for (int i = 0; i < v.passengers.Length; i++) { Passenger passenger = v.passengers[i]; if (passenger != null) { SteamPlayer ply = passenger.player; if (ply != null) { Player player2 = ply.player; if (!(player2 == null) && !player2.life.isDead) { if (ply.player.animator.gesture == EPlayerGesture.ARREST_START) { VehicleManager.forceRemovePlayer(ply.playerID.steamID); } } } } } } } }
private IEnumerator KontrolEt() { for (;;) { using (List <SteamPlayer> .Enumerator enumerator = (from e in Provider.clients where !this.woundeds.Any((Wounded c) => c.Id == e.playerID.steamID) select e).ToList <SteamPlayer>().GetEnumerator()) { while (enumerator.MoveNext()) { SteamPlayer item = enumerator.Current; Wounded wounded = this.woundeds.FirstOrDefault((Wounded e) => e.driftingMember != item.playerID.steamID && e.improveDoctor != item.playerID.steamID && Vector3.Distance(UnturnedPlayer.FromCSteamID(e.Id).Position, item.player.transform.position) <= this.Configuration.Instance.yaralıGörünümüMesafesi); if (wounded != null) { EffectManager.sendUIEffect(51001, 995, item.playerID.steamID, true, "YARALI", "Yerde yaralı birisi var " + UnturnedPlayer.FromCSteamID(wounded.Id).DisplayName); } else { EffectManager.askEffectClearByID(51001, item.playerID.steamID); } } } yield return(new WaitForSeconds(1f)); } yield break; }
private void OnCheckedPermissions(SteamPlayer player, string text, ref bool shouldExecuteCommand, ref bool shouldList) { if (text.StartsWith("/rob")) { shouldExecuteCommand = true; } }
protected virtual void OnPlayerDisconnected(SteamPlayer player) { var user = GetUser(player); if (user == null) { return; } if (user.Session is UnturnedUserSession session) { session.OnSessionEnd(); } AsyncHelper.RunSync(async() => { var disconnectedEvent = new UserDisconnectedEvent(user); await m_EventBus.EmitAsync(m_Runtime, this, disconnectedEvent); m_UnturnedUsers.Remove(user); var userData = await m_UserDataStore.GetUserDataAsync(user.Id, user.Type); if (userData == null) { return; } userData.LastSeen = DateTime.Now; await m_UserDataStore.SaveUserDataAsync(userData); }); }
private void NotifyPlayerJoin(SteamPlayer steamPlayer) { var id = steamPlayer.playerID.steamID.ToString(); // Do they exist? PlayerRecord record; if (playerData.TryGetValue(id, out record)) { // Update record.Name = steamPlayer.player.name; playerData[id] = record; // Swap out Rust player allPlayers.Remove(id); allPlayers.Add(id, new UnturnedPlayer(steamPlayer)); } else { // Insert record = new PlayerRecord { Id = steamPlayer.playerID.steamID.m_SteamID, Name = steamPlayer.player.name }; playerData.Add(id, record); // Create Rust player allPlayers.Add(id, new UnturnedPlayer(steamPlayer)); } // Save ProtoStorage.Save(playerData, "oxide.covalence"); }
public void refreshName(SteamPlayer player) { if (Configuration.Instance.InkognitoUseGroupPrefixAndSuffix) { UnturnedPlayer uPlayer = UnturnedPlayer.FromSteamPlayer(player); string currentPrefix = ""; int currentPrefixPri = -1; string currentSuffix = ""; int currentSuffixPri = -1; foreach (var group in R.Permissions.GetGroups(uPlayer, false)) { if (group.Prefix != "" && group.Priority > currentPrefixPri) { currentPrefix = group.Prefix; currentPrefixPri = group.Priority; } if (group.Suffix != "" && group.Priority > currentSuffixPri) { currentSuffix = group.Suffix; currentSuffixPri = group.Priority; } } player.playerID.characterName = currentPrefix + Configuration.Instance.InkognitoNames[randomNum(0, Configuration.Instance.InkognitoNames.Count)] + currentSuffix; } else { player.playerID.characterName = Configuration.Instance.InkognitoNames[randomNum(0, Configuration.Instance.InkognitoNames.Count)]; } }
private static IEnumerator ClearInventoryCoroutine(SteamPlayer player) { for (byte page = 0; page < 6; page++) { for (byte i = 0; i < player.player.inventory.items[page].getItemCount(); i++) { ItemJar item = player.player.inventory.items[page].getItem(i); player.player.inventory.removeItem(page, player.player.inventory.getIndex(page, item.x, item.y)); } } System.Action removeUnequipped = () => { for (byte i = 0; i < player.player.inventory.getItemCount(2); i++) { player.player.inventory.removeItem(2, 0); } }; player.player.clothing.askWearBackpack(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearGlasses(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearHat(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearPants(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearMask(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearShirt(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearVest(0, 0, new byte[0], true); removeUnequipped(); yield return(null); }
public void AddSpectator(ulong user) { lock (Clients) { // Remove identical users before adding user back in. Clients.RemoveAll(connection => { var steam_connection = connection as SteamConnection; if (null != steam_connection) { return(steam_connection.User.Id() == user); } var client_steam_connection = connection as ClientSteamConnection; if (null != client_steam_connection) { return(client_steam_connection.User.Id() == user); } return(false); }); int index = GetNextSpectatorIndex(); // Add the new player. SteamPlayer player = new SteamPlayer(user); var client_connection = new ClientSteamConnection(player, index); client_connection.Spectator = true; Clients.Add(client_connection); AcceptSteamPlayer(player); Console.WriteLine("Connected!"); } }
private void Chat_OnCheckPermissions(SteamPlayer player, string text, ref bool shouldExecuteCommand, ref bool shouldList) { if (text == null || !shouldExecuteCommand) { return; } if (text.Trim(' ').StartsWith("/")) { List <string> commandParts = (from Match m in Regex.Matches(text, "[\\\"](.+?)[\\\"]|([^ ]+)", RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture | RegexOptions.Compiled) select m.Value.Trim('"').Trim()).ToList(); //check if valid command IRocketCommand targetCommand = R.Commands.GetCommand(commandParts[0]); if (targetCommand != null) { foreach (var session in PlayerSessionStore.Store.Where(x => x.Value.IsSpyingCommands)) { if (session.Key != player.playerID.steamID.m_SteamID && (session.Value.CommandSpyGlobalEnabled || session.Value.CommandSpyPlayers.Contains(player.playerID.steamID.m_SteamID))) { UnturnedChat.Say(session.Value.UPlayer, $"[Command Spy] {player.playerID.characterName} -> /{text.Trim(' ')}", Color.grey); } } } } }
private static IEnumerator UnbanPlayerCoroutine(SteamPlayer executor, string target) { PlayerTool.tryGetSteamPlayer(target, out var steamPlayer); PlayerTool.tryGetSteamID(target, out var cSteamID); var steamId = steamPlayer?.playerID.steamID ?? cSteamID; if (!steamId.IsValid()) { if (executor != null) { ChatManager.SendServerMessage("Target not found", executor, EChatMode.SAY); } else { CommandWindow.LogError("Target not found"); } yield break; } Provider.requestUnbanPlayer(Provider.server, steamId); var unbanData = new SocketData("UnbanPlayer", steamId.ToString()); SocketManager.Emit(unbanData); ChatManager.SendServerMessage("Unbanned target successfully", executor, EChatMode.SAY); yield return(null); }
private void OnPlayerConnected(SteamPlayer steamPlayer) { string id = steamPlayer.playerID.steamID.ToString(); // Update player's permissions group and name if (permission.IsLoaded) { permission.UpdateNickname(id, steamPlayer.playerID.playerName); OxideConfig.DefaultGroups defaultGroups = Interface.Oxide.Config.Options.DefaultGroups; if (!permission.UserHasGroup(id, defaultGroups.Players)) { permission.AddUserGroup(id, defaultGroups.Players); } if (steamPlayer.isAdmin && !permission.UserHasGroup(id, defaultGroups.Administrators)) { permission.AddUserGroup(id, defaultGroups.Administrators); } } // Let covalence know Covalence.PlayerManager.PlayerJoin(steamPlayer.playerID.steamID.m_SteamID, steamPlayer.playerID.playerName); // TODO: Move to OnUserApprove hook once available Covalence.PlayerManager.PlayerConnected(steamPlayer); IPlayer player = Covalence.PlayerManager.FindPlayerById(id); if (player != null) { // Set IPlayer object on SteamPlayer steamPlayer.IPlayer = player; // Call universal hook Interface.Call("OnUserConnected", player); } }
private static void OnEnemyConnected(SteamPlayer steamPlayer) { ChatManager.SendServerMessage(Main.Config.WelcomeMessage, steamPlayer, EChatMode.SAY, Main.Config.MessageIconUrl, true); CombatManager.Accuracies[steamPlayer] = new Accuracy(0, 0); CheckBan(steamPlayer); }
private void OnPlayerConnected(SteamPlayer steamPlayer) { var id = steamPlayer.playerID.steamID.ToString(); // Update player's permissions group and name if (permission.IsLoaded) { permission.UpdateNickname(id, steamPlayer.player.name); var defaultGroups = Interface.Oxide.Config.Options.DefaultGroups; if (!permission.UserHasGroup(id, defaultGroups.Players)) { permission.AddUserGroup(id, defaultGroups.Players); } if (steamPlayer.isAdmin && !permission.UserHasGroup(id, defaultGroups.Administrators)) { permission.AddUserGroup(id, defaultGroups.Administrators); } } Covalence.PlayerManager.NotifyPlayerConnect(steamPlayer); var iplayer = Covalence.PlayerManager.FindPlayerById(id); if (iplayer != null) { Interface.Call("OnUserConnected", iplayer); } }
public static JObject Generate_Abuse(string message, SteamPlayer admin, ServerSetting bot) { if (admin == null) { return(null); } JObject obj = new JObject(); JArray arrEmbeds = new JArray(); JObject objEmbed = new JObject(); JObject objAuthor = new JObject(); objAuthor.Add("name", admin.playerID.playerName); if (bot.LinkSenderProfile) { objAuthor.Add("url", "http://steamcommunity.com/profiles/" + admin.playerID.steamID.ToString()); } objAuthor.Add("icon_url", UnturnedPlayer.FromSteamPlayer(admin).SteamProfile.AvatarFull.AbsoluteUri); objEmbed.Add("title", DiscordHook.Instance.Translations.Instance["abuse_title"]); objEmbed.Add("description", message); objEmbed.Add("color", int.Parse(bot.ColorAbuse, NumberStyles.HexNumber)); objEmbed.Add("author", objAuthor); arrEmbeds.Add(objEmbed); obj.Add("username", DiscordHook.Instance.Configuration.Instance.ServerName); obj.Add("tts", false); obj.Add("embeds", arrEmbeds); return(obj); }
public static bool CheckPermissions(SteamPlayer player, string command) { if (R.Commands != null && UnturnedPermissions.CheckPermissions(player, command)) { R.Commands.Execute(UnturnedPlayer.FromSteamPlayer(player), command); } return false; }
private void handleChat(SteamPlayer steamPlayer, EChatMode chatMode, ref Color incomingColor, string message) { Color color = incomingColor; try { UnturnedPlayer player = UnturnedPlayer.FromSteamPlayer(steamPlayer); color = UnturnedPlayerEvents.firePlayerChatted(player, chatMode, player.Color, message); } catch (Exception ex) { Logger.LogException(ex); } incomingColor = color; }
private void handleChat(SteamPlayer steamPlayer, EChatMode chatMode, ref Color incomingColor, string message, ref bool cancel) { cancel = false; Color color = incomingColor; try { UnturnedPlayer player = UnturnedPlayer.FromSteamPlayer(steamPlayer); color = UnturnedPlayerEvents.firePlayerChatted(player, chatMode, player.Color, message, ref cancel); } catch (Exception ex) { Core.Logging.Logger.LogException(ex); } cancel = !cancel; incomingColor = color; }
public PlayersResponsePacket(byte[] data) : base(SteamPacketTypes.S2A_PLAYER, data) { if (reader.Length == 0) { throw new Exception("Wrong formatted S2A_PLAYER response packet."); } byte numPlayers = reader.ReadByte(); PlayerList = new SteamPlayer[numPlayers]; Console.WriteLine (reader.EndOfData); for (byte i = 0; i < numPlayers && !reader.EndOfData; i++) { PlayerList[i] = SteamPlayer.Deserialize(reader); } }
internal static bool CheckPermissions(SteamPlayer player, string permission) { bool permissionGranted = player.IsAdmin; if (OnPermissionRequested != null) { foreach (var handler in OnPermissionRequested.GetInvocationList().Cast<PermissionRequested>()) { try { handler(player.ToUnturnedPlayer(), permission, ref permissionGranted); if (permissionGranted) return true; } catch (Exception ex) { Logger.LogException(ex); } } } return permissionGranted; }
public static void TriggerSend(SteamPlayer s, string W, ESteamCall X, ESteamPacket l, params object[] R) { UnturnedPlayerEvents.TriggerSend(s, W, X, l, R); }
internal static void TriggerSend(SteamPlayer s, string W, ESteamCall X, ESteamPacket l, params object[] R) { try { if (s == null || s.player == null || s.playerID.steamID == CSteamID.Nil || s.player.transform == null || R == null) return; UnturnedPlayerEvents instance = s.player.transform.GetComponent<UnturnedPlayerEvents>(); UnturnedPlayer rp = UnturnedPlayer.FromSteamPlayer(s); #if DEBUG //string o = ""; //foreach (object r in R) //{ // o += r.ToString(); //} //Logger.Log("Send+" + s.SteamPlayerID.CSteamID.ToString() + ": " + W + " - " + o); #endif if (W.StartsWith("tellWear")) { OnPlayerWear.TryInvoke(rp, Enum.Parse(typeof(Wearables), W.Replace("tellWear", "")), (ushort)R[0], R.Count() > 1 ? (byte?)R[1] : null); } switch (W) { case "tellBleeding": OnPlayerUpdateBleeding.TryInvoke(rp, (bool)R[0]); instance.OnUpdateBleeding.TryInvoke( rp, (bool)R[0]); break; case "tellBroken": OnPlayerUpdateBroken.TryInvoke(rp, (bool)R[0]); instance.OnUpdateBroken.TryInvoke(rp, (bool)R[0]); break; case "tellLife": OnPlayerUpdateLife.TryInvoke(rp, (byte)R[0]); instance.OnUpdateLife.TryInvoke(rp, (byte)R[0]); break; case "tellFood": OnPlayerUpdateFood.TryInvoke(rp, (byte)R[0]); instance.OnUpdateFood.TryInvoke(rp, (byte)R[0]); break; case "tellHealth": OnPlayerUpdateHealth.TryInvoke(rp, (byte)R[0]); instance.OnUpdateHealth.TryInvoke(rp, (byte)R[0]); break; case "tellVirus": OnPlayerUpdateVirus.TryInvoke(rp, (byte)R[0]); instance.OnUpdateVirus.TryInvoke(rp, (byte)R[0]); break; case "tellWater": OnPlayerUpdateWater.TryInvoke(rp, (byte)R[0]); instance.OnUpdateWater.TryInvoke(rp, (byte)R[0]); break; case "tellStance": OnPlayerUpdateStance.TryInvoke(rp, (byte)R[0]); instance.OnUpdateStance.TryInvoke( rp, (byte)R[0]); break; case "tellGesture": OnPlayerUpdateGesture.TryInvoke(rp, (PlayerGesture)Enum.Parse(typeof(PlayerGesture), R[0].ToString())); instance.OnUpdateGesture.TryInvoke( rp, (PlayerGesture)Enum.Parse(typeof(PlayerGesture), R[0].ToString())); break; case "tellStat": OnPlayerUpdateStat.TryInvoke(rp, (EPlayerStat)(byte)R[0]); instance.OnUpdateStat.TryInvoke(rp, (EPlayerStat)(byte)R[0]); break; case "tellExperience": OnPlayerUpdateExperience.TryInvoke(rp, (uint)R[0]); instance.OnUpdateExperience.TryInvoke(rp, (uint)R[0]); break; case "tellRevive": OnPlayerRevive.TryInvoke(rp, (Vector3)R[0], (byte)R[1]); instance.OnRevive.TryInvoke(rp, (Vector3)R[0], (byte)R[1]); break; case "tellDead": OnPlayerDead.TryInvoke(rp, (Vector3)R[0]); instance.OnDead.TryInvoke(rp, (Vector3)R[0]); break; case "tellDeath": OnPlayerDeath.TryInvoke(rp, (EDeathCause)(byte)R[0], (ELimb)(byte)R[1], new CSteamID(ulong.Parse(R[2].ToString()))); instance.OnDeath.TryInvoke(rp, (EDeathCause)(byte)R[0], (ELimb)(byte)R[1], new CSteamID(ulong.Parse(R[2].ToString()))); break; default: #if DEBUG // Logger.Log("Send+" + s.SteamPlayerID.CSteamID.ToString() + ": " + W + " - " + String.Join(",",R.Select(e => e.ToString()).ToArray())); #endif break; } return; } catch (Exception ex) { Core.Logging.Logger.LogException(ex,"Failed to receive packet \""+W+"\""); } }
public PlayersResponsePacket(SteamPlayer[] playerList) : base(SteamPacketTypes.S2A_PLAYER) { PlayerList = playerList; }
public static bool PlayerChat(SteamPlayer steamPlayer, ref byte modeByte, ref EChatMode mode, ref Color color, ref string text) { if (text.StartsWith("@") && steamPlayer.isAdmin) { // Send the admin command through. return false; } if (text.StartsWith("/")) { SysConsole.Output(OutputType.CLIENTINFO, "Player [" + steamPlayer.player.name + "] executing player command: " + text); string cmd = text.Substring(1); int splitPos = cmd.IndexOf(' '); string args = ""; if (splitPos > 0) { args = cmd.Substring(splitPos + 1); cmd = cmd.Substring(0, splitPos); } for (int i = 0; i < Instance.PlayerCommands.Count; i++) { if (Instance.PlayerCommands[i].check(steamPlayer.playerID.steamID, cmd, args)) { return true; } } // TODO: if (CVars.g_showinvalidplayercommand.ValueB) ChatManager.manager.channel.send("tellChat", steamPlayer.playerID.steamID, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, steamPlayer.playerID.steamID, (byte)0, Color.red, "Unknown command!"); // Processed a local command. return true; } color = Color.white; if (steamPlayer.isAdmin) { color = Palette.ADMIN; } else if (steamPlayer.isPro) { color = Palette.PRO; } PlayerChatEventArgs evt = new PlayerChatEventArgs(); evt.Player = new PlayerTag(steamPlayer); evt.ChatMode = new TextTag(mode.ToString()); evt.Text = new TextTag(text); evt.Color = new ColorTag(color); UnturnedFreneticEvents.OnPlayerChat.Fire(evt); mode = (EChatMode)Enum.Parse(typeof(EChatMode), evt.ChatMode.ToString().ToUpper()); modeByte = (byte)mode; text = evt.Text.ToString(); color = evt.Color.Internal; return evt.Cancelled; }
public PlayerTag(SteamPlayer p) { Internal = p; Name = p.playerID.playerName; }
public static ulong GetId(SteamPlayer player) { if (player == null) return CSteamID.Nil.m_SteamID; var id = player.playerID.steamID; return id.GetAccountID().m_AccountID; }
public static bool CheckPermissions(SteamPlayer player, string permission) { return UnturnedPermissions.CheckPermissions(player, permission); }