public static void promote(ConsoleSystem.Arg arg)
    {
        BasePlayer basePlayer = arg.Player();

        if (basePlayer.currentTeam == 0)
        {
            return;
        }
        BasePlayer lookingAtPlayer = RelationshipManager.GetLookingAtPlayer(basePlayer);

        if (lookingAtPlayer == null)
        {
            return;
        }
        if (lookingAtPlayer.IsDead())
        {
            return;
        }
        if (lookingAtPlayer == basePlayer)
        {
            return;
        }
        if (lookingAtPlayer.currentTeam == basePlayer.currentTeam)
        {
            RelationshipManager.PlayerTeam item = RelationshipManager.Instance.playerTeams[basePlayer.currentTeam];
            if (item != null && item.teamLeader == basePlayer.userID)
            {
                if (Interface.CallHook("OnTeamPromote", item, lookingAtPlayer) != null)
                {
                    return;
                }
                item.SetTeamLeader(lookingAtPlayer.userID);
            }
        }
    }
Exemplo n.º 2
0
        public override void Execute()
        {
            AppMapMarkers appMapMarkers = Pool.Get <AppMapMarkers>();

            appMapMarkers.markers = Pool.GetList <AppMarker>();
            RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindPlayersTeam(base.UserId);
            if (playerTeam != null)
            {
                foreach (ulong member in playerTeam.members)
                {
                    BasePlayer basePlayer = RelationshipManager.FindByID(member);
                    if (!(basePlayer == null))
                    {
                        appMapMarkers.markers.Add(GetPlayerMarker(basePlayer));
                    }
                }
            }
            else if (base.Player != null)
            {
                appMapMarkers.markers.Add(GetPlayerMarker(base.Player));
            }
            foreach (MapMarker serverMapMarker in MapMarker.serverMapMarkers)
            {
                if (serverMapMarker.appType != 0)
                {
                    appMapMarkers.markers.Add(serverMapMarker.GetAppMarkerData());
                }
            }
            AppResponse appResponse = Pool.Get <AppResponse>();

            appResponse.mapMarkers = appMapMarkers;
            Send(appResponse);
        }
 public override void Load(BaseNetworkable.LoadInfo info)
 {
     base.Load(info);
     if (!info.fromDisk || info.msg.relationshipManager == null)
     {
         return;
     }
     this.lastTeamIndex = (ulong)((RelationshipManager)info.msg.relationshipManager).lastTeamIndex;
     using (List <ProtoBuf.PlayerTeam> .Enumerator enumerator1 = ((List <ProtoBuf.PlayerTeam>)((RelationshipManager)info.msg.relationshipManager).teamList).GetEnumerator())
     {
         while (enumerator1.MoveNext())
         {
             ProtoBuf.PlayerTeam            current1   = enumerator1.Current;
             RelationshipManager.PlayerTeam playerTeam = (RelationshipManager.PlayerTeam)Pool.Get <RelationshipManager.PlayerTeam>();
             playerTeam.teamLeader = (ulong)current1.teamLeader;
             playerTeam.teamID     = (ulong)current1.teamID;
             playerTeam.teamName   = (string)current1.teamName;
             playerTeam.members    = new List <ulong>();
             using (List <ProtoBuf.PlayerTeam.TeamMember> .Enumerator enumerator2 = ((List <ProtoBuf.PlayerTeam.TeamMember>)current1.members).GetEnumerator())
             {
                 while (enumerator2.MoveNext())
                 {
                     ProtoBuf.PlayerTeam.TeamMember current2 = enumerator2.Current;
                     playerTeam.members.Add((ulong)current2.userID);
                 }
             }
             this.playerTeams[playerTeam.teamID] = playerTeam;
         }
     }
 }
 public override void Save(BaseNetworkable.SaveInfo info)
 {
     base.Save(info);
     info.msg.relationshipManager             = Pool.Get <ProtoBuf.RelationshipManager>();
     info.msg.relationshipManager.maxTeamSize = RelationshipManager.maxTeamSize;
     if (info.forDisk)
     {
         info.msg.relationshipManager.lastTeamIndex = this.lastTeamIndex;
         info.msg.relationshipManager.teamList      = Pool.GetList <ProtoBuf.PlayerTeam>();
         foreach (KeyValuePair <ulong, RelationshipManager.PlayerTeam> playerTeam in this.playerTeams)
         {
             RelationshipManager.PlayerTeam value = playerTeam.Value;
             if (value == null)
             {
                 continue;
             }
             ProtoBuf.PlayerTeam list = Pool.Get <ProtoBuf.PlayerTeam>();
             list.teamLeader = value.teamLeader;
             list.teamID     = value.teamID;
             list.teamName   = value.teamName;
             list.members    = Pool.GetList <ProtoBuf.PlayerTeam.TeamMember>();
             foreach (ulong member in value.members)
             {
                 ProtoBuf.PlayerTeam.TeamMember teamMember = Pool.Get <ProtoBuf.PlayerTeam.TeamMember>();
                 BasePlayer basePlayer = RelationshipManager.FindByID(member);
                 teamMember.displayName = (basePlayer != null ? basePlayer.displayName : "DEAD");
                 teamMember.userID      = member;
                 list.members.Add(teamMember);
             }
             info.msg.relationshipManager.teamList.Add(list);
         }
     }
 }
    public static void acceptinvite(ConsoleSystem.Arg arg)
    {
        BasePlayer basePlayer = arg.Player();

        if (basePlayer == null)
        {
            return;
        }
        if (basePlayer.currentTeam != 0)
        {
            return;
        }
        ulong num = arg.GetULong(0, (ulong)0);

        RelationshipManager.PlayerTeam playerTeam = RelationshipManager.Instance.FindTeam(num);
        if (playerTeam == null)
        {
            basePlayer.ClearPendingInvite();
            return;
        }
        if (Interface.CallHook("OnTeamAcceptInvite", playerTeam, basePlayer) != null)
        {
            return;
        }
        playerTeam.AcceptInvite(basePlayer);
    }
    public static void addtoteam(ConsoleSystem.Arg arg)
    {
        RaycastHit raycastHit;
        BasePlayer basePlayer = arg.Player();

        RelationshipManager.PlayerTeam playerTeam = RelationshipManager.Instance.FindTeam(basePlayer.currentTeam);
        if (playerTeam == null)
        {
            return;
        }
        if (playerTeam.GetLeader() == null)
        {
            return;
        }
        if (playerTeam.GetLeader() != basePlayer)
        {
            return;
        }
        if (Physics.Raycast(basePlayer.eyes.position, basePlayer.eyes.HeadForward(), out raycastHit, 5f, 1218652417, QueryTriggerInteraction.Ignore))
        {
            BaseEntity entity = raycastHit.GetEntity();
            if (entity)
            {
                BasePlayer component = entity.GetComponent <BasePlayer>();
                if (component && component != basePlayer && !component.IsNpc)
                {
                    playerTeam.AddPlayer(component);
                }
            }
        }
    }
Exemplo n.º 7
0
        public static string teaminfo(Arg arg)
        {
            ulong num = arg.GetUInt64(0, 0uL);

            if (num == 0L)
            {
                BasePlayer player = ArgEx.GetPlayer(arg, 0);
                if (player == null)
                {
                    return("Player not found");
                }
                num = player.userID;
            }
            RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindPlayersTeam(num);
            if (playerTeam == null)
            {
                return("Player is not in a team");
            }
            TextTable textTable = new TextTable();

            textTable.AddColumn("steamID");
            textTable.AddColumn("username");
            textTable.AddColumn("online");
            textTable.AddColumn("leader");
            foreach (ulong memberId in playerTeam.members)
            {
                bool flag = Network.Net.sv.connections.FirstOrDefault((Connection c) => c.connected && c.userid == memberId) != null;
                textTable.AddRow(memberId.ToString(), GetPlayerName(memberId), flag ? "x" : "", (memberId == playerTeam.teamLeader) ? "x" : "");
            }
            return(textTable.ToString());
        }
Exemplo n.º 8
0
        private void GenerateClanTeam(List <ulong> memberIds)
        {
            if (clans.ContainsKey(ClanTag(memberIds[0])))
            {
                clans.Remove(ClanTag(memberIds[0]));
            }

            clans[ClanTag(memberIds[0])] = new List <ulong>();
            RelationshipManager.PlayerTeam team = RelationshipManager.Instance.CreateTeam();

            foreach (ulong memberId in memberIds)
            {
                BasePlayer player = BasePlayer.FindByID(memberId);
                if (player != null)
                {
                    if (player.currentTeam != 0UL)
                    {
                        RelationshipManager.PlayerTeam current = RelationshipManager.Instance.FindTeam(player.currentTeam);
                        current.RemovePlayer(player.userID);
                    }
                    team.AddPlayer(player);

                    clans[ClanTag(memberId)].Add(player.userID);

                    if (IsAnOwner(player))
                    {
                        team.SetTeamLeader(player.userID);
                    }
                }
            }
        }
 public override void Save(BaseNetworkable.SaveInfo info)
 {
     base.Save(info);
     info.msg.relationshipManager = (__Null)Pool.Get <RelationshipManager>();
     ((RelationshipManager)info.msg.relationshipManager).maxTeamSize = (__Null)RelationshipManager.maxTeamSize;
     if (!info.forDisk)
     {
         return;
     }
     ((RelationshipManager)info.msg.relationshipManager).lastTeamIndex = (__Null)(long)this.lastTeamIndex;
     ((RelationshipManager)info.msg.relationshipManager).teamList      = (__Null)Pool.GetList <ProtoBuf.PlayerTeam>();
     foreach (KeyValuePair <ulong, RelationshipManager.PlayerTeam> playerTeam1 in this.playerTeams)
     {
         RelationshipManager.PlayerTeam playerTeam2 = playerTeam1.Value;
         if (playerTeam2 != null)
         {
             ProtoBuf.PlayerTeam playerTeam3 = (ProtoBuf.PlayerTeam)Pool.Get <ProtoBuf.PlayerTeam>();
             playerTeam3.teamLeader = (__Null)(long)playerTeam2.teamLeader;
             playerTeam3.teamID     = (__Null)(long)playerTeam2.teamID;
             playerTeam3.teamName   = (__Null)playerTeam2.teamName;
             playerTeam3.members    = (__Null)Pool.GetList <ProtoBuf.PlayerTeam.TeamMember>();
             foreach (ulong member in playerTeam2.members)
             {
                 ProtoBuf.PlayerTeam.TeamMember teamMember = (ProtoBuf.PlayerTeam.TeamMember)Pool.Get <ProtoBuf.PlayerTeam.TeamMember>();
                 BasePlayer byId = RelationshipManager.FindByID(member);
                 teamMember.displayName = Object.op_Inequality((Object)byId, (Object)null) ? (__Null)byId.displayName : (__Null)"DEAD";
                 teamMember.userID      = (__Null)(long)member;
                 ((List <ProtoBuf.PlayerTeam.TeamMember>)playerTeam3.members).Add(teamMember);
             }
             ((List <ProtoBuf.PlayerTeam>)((RelationshipManager)info.msg.relationshipManager).teamList).Add(playerTeam3);
         }
     }
 }
    public static void kickmember(ConsoleSystem.Arg arg)
    {
        BasePlayer basePlayer = arg.Player();

        if (basePlayer == null)
        {
            return;
        }
        RelationshipManager.PlayerTeam playerTeam = RelationshipManager.Instance.FindTeam(basePlayer.currentTeam);
        if (playerTeam == null)
        {
            return;
        }
        if (playerTeam.GetLeader() != basePlayer)
        {
            return;
        }
        ulong num = arg.GetULong(0, (ulong)0);

        if (basePlayer.userID == num)
        {
            return;
        }
        if (Interface.CallHook("OnTeamKick", playerTeam, basePlayer) != null)
        {
            return;
        }
        playerTeam.RemovePlayer(num);
    }
Exemplo n.º 11
0
 public override void Execute()
 {
     RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindPlayersTeam(base.UserId);
     if (playerTeam == null)
     {
         SendError("no_team");
         return;
     }
     if (playerTeam.teamLeader != base.UserId)
     {
         SendError("access_denied");
         return;
     }
     if (playerTeam.teamLeader == base.Proto.steamId)
     {
         SendSuccess();
         return;
     }
     if (!playerTeam.members.Contains(base.Proto.steamId))
     {
         SendError("not_found");
         return;
     }
     playerTeam.SetTeamLeader(base.Proto.steamId);
     SendSuccess();
 }
    public static void addtoteam(ConsoleSystem.Arg arg)
    {
        BasePlayer basePlayer = arg.Player();

        RelationshipManager.PlayerTeam team = RelationshipManager.Instance.FindTeam(basePlayer.currentTeam);
        RaycastHit hit;

        if (team == null || Object.op_Equality((Object)team.GetLeader(), (Object)null) || (Object.op_Inequality((Object)team.GetLeader(), (Object)basePlayer) || !Physics.Raycast(basePlayer.eyes.position, basePlayer.eyes.HeadForward(), ref hit, 5f, 1218652417, (QueryTriggerInteraction)1)))
        {
            return;
        }
        BaseEntity entity = hit.GetEntity();

        if (!Object.op_Implicit((Object)entity))
        {
            return;
        }
        BasePlayer component = (BasePlayer)((Component)entity).GetComponent <BasePlayer>();

        if (!Object.op_Implicit((Object)component) || !Object.op_Inequality((Object)component, (Object)basePlayer) || component.IsNpc)
        {
            return;
        }
        team.AddPlayer(component);
    }
Exemplo n.º 13
0
        public override void Execute()
        {
            RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindPlayersTeam(base.UserId);
            if (playerTeam == null)
            {
                SendError("no_team");
                return;
            }
            AppResponse appResponse = Pool.Get <AppResponse>();

            appResponse.teamChat          = Pool.Get <AppTeamChat>();
            appResponse.teamChat.messages = Pool.GetList <AppChatMessage>();
            IReadOnlyList <ChatLog.Entry> history = Server.TeamChat.GetHistory(playerTeam.teamID);

            if (history != null)
            {
                foreach (ChatLog.Entry item in history)
                {
                    AppChatMessage appChatMessage = Pool.Get <AppChatMessage>();
                    appChatMessage.steamId = item.SteamId;
                    appChatMessage.name    = item.Name;
                    appChatMessage.message = item.Message;
                    appChatMessage.color   = item.Color;
                    appChatMessage.time    = item.Time;
                    appResponse.teamChat.messages.Add(appChatMessage);
                }
            }
            Send(appResponse);
        }
Exemplo n.º 14
0
        //Team Chat with /t
        void ChatCommand_TeamChat(BasePlayer player, string command, string[] args)
        {
            if (!(bool)Config["EnableTeamChatting"] || args == null || args.Length == 0)
            {
                return;
            }

            if (args.Length >= 1)
            {
                RelationshipManager.PlayerTeam playersTeam = RelationshipManager.Instance.FindTeam(player.currentTeam);
                string joinedMessage = string.Join(" ", args);
                string playerNameSan = string.Join(" ", GetPlayerTitle(player),
                                                   player.displayName.Replace('<', '[').Replace('>', ']'));

                for (int i = 0; i < playersTeam.members.Count; i++)
                {
                    BasePlayer.FindByID(playersTeam.members[i])?
                    .SendConsoleCommand(
                        "chat.add",
                        new object[] {
                        player.userID,
                        string.Format("<color=#B9FC3E>{0}</color>: {1}", playerNameSan, joinedMessage)
                    }
                        );
                }
                ;
            }
        }
Exemplo n.º 15
0
 bool IsFriend(ulong friendid, ulong playerid)
 {
     if (UseFriendsAPI && Friends != null)
     {
         var fr = Friends.CallHook("AreFriends", friendid, playerid);
         if (fr != null && (bool)fr)
         {
             return(true);
         }
     }
     if (UseTeams)
     {
         BasePlayer player = BasePlayer.FindByID(playerid);
         if (player.currentTeam != (long)0)
         {
             RelationshipManager.PlayerTeam playerTeam = RelationshipManager.Instance.FindTeam(player.currentTeam);
             if (playerTeam == null)
             {
                 return(false);
             }
             if (playerTeam.members.Contains(friendid))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
 public RelationshipManager.PlayerTeam CreateTeam()
 {
     RelationshipManager.PlayerTeam playerTeam = (RelationshipManager.PlayerTeam)Pool.Get <RelationshipManager.PlayerTeam>();
     playerTeam.teamID = this.lastTeamIndex;
     this.playerTeams.Add(this.lastTeamIndex, playerTeam);
     ++this.lastTeamIndex;
     return(playerTeam);
 }
Exemplo n.º 17
0
        public override void Execute()
        {
            RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindPlayersTeam(base.UserId);
            AppTeamInfo teamInfo    = ((playerTeam == null) ? AppPlayerExtensions.GetAppTeamInfo(base.Player, base.UserId) : AppPlayerExtensions.GetAppTeamInfo(playerTeam, base.UserId));
            AppResponse appResponse = Pool.Get <AppResponse>();

            appResponse.teamInfo = teamInfo;
            Send(appResponse);
        }
Exemplo n.º 18
0
        object OnPlayerChat(ConsoleSystem.Arg arg, Chat.ChatChannel chatchannel)
        {
            BasePlayer inputChatBasePlayer = arg.Connection.player as BasePlayer;
            String     playerName          = arg.Connection.username;
            String     message             = arg.GetString(0);
            String     convertMessage      = "KR".Equals(InfoUtils.GetUserMode(inputChatBasePlayer, User[inputChatBasePlayer.UserIDString])) ? StringUtils.getConvertKor(message) : message;

            // 콘솔로그
            Puts(playerName + ": " + convertMessage);

            // 욕설 변환
            convertMessage = this.getChangeForbiddenWord(convertMessage, inputChatBasePlayer, chatchannel);

            if (!isUsePlugin("BetterChat"))
            {
                if (chatchannel == Chat.ChatChannel.Team)
                {
                    List <Connection> sendUserList      = new List <Connection>();
                    RelationshipManager.PlayerTeam team = inputChatBasePlayer.Team;
                    if (null == team || team.members.Count < 1)
                    {
                        return(true);
                    }
                    foreach (ulong teamUserId in team.members)
                    {
                        Connection inUser = BasePlayer.FindByID(teamUserId).Connection;
                        if (null != inUser)
                        {
                            sendUserList.Add(inUser);
                        }
                    }
                    // 메시지 전송
                    if (sendUserList.Count > 0)
                    {
                        ConsoleNetwork.SendClientCommand(sendUserList, "chat.add2", new object[] { chatchannel, inputChatBasePlayer.UserIDString, convertMessage, "[TEAM] " + inputChatBasePlayer.displayName, "#" + InfoUtils.GetUserNameColor() });
                    }
                }
                else
                {
                    List <Connection> sendUserList = new List <Connection>();
                    foreach (BasePlayer basePlayer in BasePlayer.activePlayerList)
                    {
                        sendUserList.Add(basePlayer.Connection);
                    }
                    // 메시지 전송
                    if (sendUserList.Count > 0)
                    {
                        ConsoleNetwork.SendClientCommand(sendUserList, "chat.add2", new object[] { chatchannel, inputChatBasePlayer.UserIDString, convertMessage, inputChatBasePlayer.displayName, "#" + InfoUtils.GetUserNameColor() });
                    }
                }

                return(false);
            }

            return(null);
        }
Exemplo n.º 19
0
        void Invite(BasePlayer player, string targetPlayer)
        {
            string msgPlayerNotFound = lang.GetMessage("PlayerNotFound", this, player.UserIDString); // Used more than once

            // Check if player is in team
            if (player.currentTeam == 0UL)
            {
                player.ChatMessage(lang.GetMessage("NotInTeam", this, player.UserIDString));
                return;
            }

            RelationshipManager.PlayerTeam aTeam = RelationshipManager.Instance.FindTeam(player.currentTeam);
            var aTarget = FindPlayersOnline(targetPlayer);

            // Check if player exists
            if (aTarget.Count <= 0)
            {
                player.ChatMessage(msgPlayerNotFound);
                return;
            }
            // Found Multiple players
            if (aTarget.Count > 1)
            {
                player.ChatMessage(string.Format("{0}: {1}",
                                                 lang.GetMessage("MultiplePlayersFound", this, player.UserIDString),
                                                 string.Join(", ", aTarget.ConvertAll(p => p.displayName).ToArray())));
                return;
            }

            var theTarget = aTarget[0];

            // Null Check
            if (theTarget == null)
            {
                player.ChatMessage(msgPlayerNotFound);
                return;
            }
            // Check if team leader
            if (aTeam.teamLeader != player.userID)
            {
                player.ChatMessage(lang.GetMessage("NotTeamLeader", this, player.UserIDString));
                return;
            }
            // Check it target is player
            if (theTarget == player)
            {
                player.ChatMessage(lang.GetMessage("CannotInviteYourself", this, player.UserIDString));
                return;
            }

            // Invite if all checks pass
            aTeam.SendInvite(theTarget);
            player.ChatMessage(string.Format("{0}: {1}",
                                             lang.GetMessage("Invited", this, player.UserIDString),
                                             theTarget.displayName));
        }
 public void DisbandTeam(RelationshipManager.PlayerTeam teamToDisband)
 {
     if (Interface.CallHook("OnTeamDisband", teamToDisband) != null)
     {
         return;
     }
     this.playerTeams.Remove(teamToDisband.teamID);
     Interface.CallHook("OnTeamDisbanded", teamToDisband);
     Pool.Free <RelationshipManager.PlayerTeam>(ref teamToDisband);
 }
 public void DisbandTeam(RelationshipManager.PlayerTeam teamToDisband)
 {
     if (Interface.CallHook("OnTeamDisband", (object)teamToDisband) != null)
     {
         return;
     }
     this.playerTeams.Remove(teamToDisband.teamID);
     Interface.CallHook("OnTeamDisbanded", (object)teamToDisband);
     // ISSUE: cast to a reference type
     Pool.Free <RelationshipManager.PlayerTeam>((M0&)ref teamToDisband);
 }
Exemplo n.º 22
0
        void CreateTeam(BasePlayer player)
        {
            if (player.currentTeam != 0UL)
            {
                player.ChatMessage(lang.GetMessage("AlreadyInTeam", this, player.UserIDString));
                return;
            }

            RelationshipManager.PlayerTeam aTeam = RelationshipManager.Instance.CreateTeam();
            aTeam.teamLeader = player.userID;
            aTeam.AddPlayer(player);
        }
Exemplo n.º 23
0
            public ResidentTeamMembership(RelationshipManager.PlayerTeam team)
            {
                if (team == null)
                {
                    return;
                }

                id         = team.teamID;
                name       = team.teamName;
                leader     = team.teamLeader;
                start_time = team.teamStartTime;
                lifetime   = team.teamLifetime;
            }
        private bool IsTeamMember(BasePlayer player, StashContainer stash)
        {
            if (!(bool)Config[IGNORE_SAME_TEAM])
            {
                return(false);
            }
            RelationshipManager.PlayerTeam team = RelationshipManager.ServerInstance.FindPlayersTeam(stash.OwnerID);

            if (team == null)
            {
                return(false);
            }

            return(team.teamID == player.currentTeam);
        }
Exemplo n.º 25
0
        public static void BroadcastAppTeamUpdate(this RelationshipManager.PlayerTeam team)
        {
            AppBroadcast appBroadcast = Facepunch.Pool.Get <AppBroadcast>();

            appBroadcast.teamChanged = Facepunch.Pool.Get <AppTeamChanged>();
            appBroadcast.ShouldPool  = false;
            foreach (ulong member in team.members)
            {
                appBroadcast.teamChanged.playerId = member;
                appBroadcast.teamChanged.teamInfo = AppPlayerExtensions.GetAppTeamInfo(team, member);
                Server.Broadcast(new PlayerTarget(member), appBroadcast);
            }
            appBroadcast.ShouldPool = true;
            appBroadcast.Dispose();
        }
Exemplo n.º 26
0
 public static void SendSignedInNotification(BasePlayer player)
 {
     if (!(player == null) && player.currentTeam != 0L)
     {
         RelationshipManager.PlayerTeam playerTeam        = RelationshipManager.ServerInstance.FindTeam(player.currentTeam);
         Dictionary <string, string>    serverPairingData = GetServerPairingData();
         serverPairingData.Add("type", "login");
         serverPairingData.Add("targetId", player.UserIDString);
         serverPairingData.Add("targetName", player.displayName.Truncate(128));
         if (playerTeam != null)
         {
             SendNotification(playerTeam, NotificationChannel.PlayerLoggedIn, player.displayName + " is now online", ConVar.Server.hostname, serverPairingData, player.userID);
         }
     }
 }
Exemplo n.º 27
0
        void OnDispenserGather(ResourceDispenser dispenser, BaseEntity entity, Item item)
        {
            if (entity.ToPlayer() == null)
            {
                return;
            }
            var basePlayer  = entity.ToPlayer();
            var currentTeam = basePlayer.currentTeam;

            if (currentTeam != 0)
            {
                RelationshipManager.PlayerTeam team = RelationshipManager.Instance.FindTeam(currentTeam);
                if (team != null)
                {
                    var players = team.members;
                    if (team.members.Count > 1)
                    {
                        foreach (var teamMember in players)
                        {
                            if (teamMember.ToString() != basePlayer.UserIDString)
                            {
                                BasePlayer member = BasePlayer.FindByID(teamMember);
                                if (member != null)
                                {
                                    if (Vector3.Distance(basePlayer.transform.position, member.transform.position) <= config.distanceMate)
                                    {
                                        item.amount = item.amount + (item.amount * config.bonusMate / 100);
                                        basePlayer.ChatMessage("You got " + config.bonusMate.ToString() + "% more because you're close to a member of your team");
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        return;
                    }
                }
                else
                {
                    return;
                }
            }
            else
            {
                return;
            }
        }
    public static void leaveteam(ConsoleSystem.Arg arg)
    {
        BasePlayer basePlayer = arg.Player();

        if (Object.op_Equality((Object)basePlayer, (Object)null) || basePlayer.currentTeam == 0UL)
        {
            return;
        }
        RelationshipManager.PlayerTeam team = RelationshipManager.Instance.FindTeam(basePlayer.currentTeam);
        if (team == null || Interface.CallHook("OnTeamLeave", (object)team, (object)basePlayer) != null)
        {
            return;
        }
        team.RemovePlayer(basePlayer.userID);
        basePlayer.ClearTeam();
    }
    public static void fakeinvite(ConsoleSystem.Arg arg)
    {
        BasePlayer player = arg.Player();

        RelationshipManager.PlayerTeam team = RelationshipManager.Instance.FindTeam(arg.GetULong(0, 0UL));
        if (team == null)
        {
            return;
        }
        if (player.currentTeam != 0UL)
        {
            Debug.Log((object)"already in team");
        }
        team.SendInvite(player);
        Debug.Log((object)"sent bot invite");
    }
Exemplo n.º 30
0
        private bool IsFriend(ulong playerid, ulong ownerid)
        {
            if (!configData.HonorRelationships)
            {
                return(false);
            }

            if (configData.useFriends && Friends != null)
            {
                var fr = Friends?.CallHook("AreFriends", playerid, ownerid);
                if (fr != null && (bool)fr)
                {
                    return(true);
                }
            }
            if (configData.useClans && Clans != null)
            {
                string playerclan = (string)Clans?.CallHook("GetClanOf", playerid);
                string ownerclan  = (string)Clans?.CallHook("GetClanOf", ownerid);
                if (playerclan != null && ownerclan != null)
                {
                    if (playerclan == ownerclan)
                    {
                        return(true);
                    }
                }
            }
            if (configData.useTeams)
            {
                BasePlayer player = BasePlayer.FindByID(playerid);
                if (player != null)
                {
                    if (player.currentTeam != 0)
                    {
                        RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindTeam(player.currentTeam);
                        if (playerTeam != null)
                        {
                            if (playerTeam.members.Contains(ownerid))
                            {
                                return(true);
                            }
                        }
                    }
                }
            }
            return(false);
        }