Esempio n. 1
0
        public static void AssignPlayer(long playerId)
        {
            if (!PluginCore.Instance.Config.Enable || !PluginCore.Instance.Config.AssignFaction || playerId == 0)
            {
                return;
            }

            var factionDictionary = MySession.Static.Factions.Factions;

            if (factionDictionary == null || factionDictionary.Count == 0)
            {
                return;
            }
            IMyFaction potentialFaction = null;

            if (MySession.Static.Factions.GetPlayerFaction(playerId) != null)
            {
                return;
            }
            foreach (var(factionId, faction) in factionDictionary)
            {
                if (faction.IsEveryoneNpc() || MySession.Static.Players.IdentityIsNpc(faction.FounderId))
                {
                    continue;
                }

                if (faction.Members.Count >= PluginCore.Instance.Config.FactionSize)
                {
                    continue;
                }

                potentialFaction = faction;
            }

            if (potentialFaction == null)
            {
                CreatePlayerFaction(playerId);
                return;
            }
            MyVisualScriptLogicProvider.SetPlayersFaction(playerId, potentialFaction.Tag);
        }