예제 #1
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public long Add(PermissionSystem.Model.Organization model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("insert into Organization(");
            strSql.Append("parent_organization_id,organization_name,create_time,description)");
            strSql.Append(" values (");
            strSql.Append("@parent_organization_id,@organization_name,@create_time,@description)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters = {
                    new SqlParameter("@parent_organization_id", SqlDbType.BigInt,8),
                    new SqlParameter("@organization_name", SqlDbType.NVarChar,50),
                    new SqlParameter("@create_time", SqlDbType.DateTime),
                    new SqlParameter("@description", SqlDbType.NVarChar,200)};
            parameters[0].Value = model.parent_organization_id;
            parameters[1].Value = model.organization_name;
            parameters[2].Value = model.create_time;
            parameters[3].Value = model.description;

            object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters);
            if (obj == null)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt64(obj);
            }
        }
예제 #2
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public long Add(PermissionSystem.Model.OperatorLog model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("insert into OperatorLog(");
            strSql.Append("operator_type,operator_content,user_id,operator_time)");
            strSql.Append(" values (");
            strSql.Append("@operator_type,@operator_content,@user_id,@operator_time)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters = {
                    new SqlParameter("@operator_type", SqlDbType.NVarChar,50),
                    new SqlParameter("@operator_content", SqlDbType.NVarChar,200),
                    new SqlParameter("@user_id", SqlDbType.BigInt,8),
                    new SqlParameter("@operator_time", SqlDbType.DateTime)};
            parameters[0].Value = model.operator_type;
            parameters[1].Value = model.operator_content;
            parameters[2].Value = model.user_id;
            parameters[3].Value = model.operator_time;

            object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters);
            if (obj == null)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt64(obj);
            }
        }
예제 #3
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public long Add(PermissionSystem.Model.User model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("insert into User(");
            strSql.Append("organization_id,user_name,password,vsername,create_time)");
            strSql.Append(" values (");
            strSql.Append("@organization_id,@user_name,@password,@vsername,@create_time)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters = {
                    new SqlParameter("@organization_id", SqlDbType.BigInt,8),
                    new SqlParameter("@user_name", SqlDbType.NVarChar,50),
                    new SqlParameter("@password", SqlDbType.NVarChar,200),
                    new SqlParameter("@vsername", SqlDbType.NVarChar,50),
                    new SqlParameter("@create_time", SqlDbType.DateTime)};
            parameters[0].Value = model.organization_id;
            parameters[1].Value = model.user_name;
            parameters[2].Value = model.password;
            parameters[3].Value = model.vsername;
            parameters[4].Value = model.create_time;

            object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters);
            if (obj == null)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt64(obj);
            }
        }
예제 #4
0
        public void OnCommand(Fougerite.Player player, string cmd, string[] args)
        {
            switch (cmd)
            {
            case "flushdeathmsg":
            {
                if (player.Admin || PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "deathmsg.flushdeathmsg"))
                {
                    DataStore.GetInstance().Flush("DeathMSGAVG");
                    DataStore.GetInstance().Flush("DeathMSGAVG2");
                    player.MessageFrom(DeathMSGName, "Flushed!");
                }

                break;
            }

            case "deathmsgrd":
            {
                if (player.Admin || PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "deathmsg.deathmsgrd"))
                {
                    LoadConfig();
                    player.MessageFrom(DeathMSGName, "Reloaded!");
                }

                break;
            }
            }
        }
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public long Add(PermissionSystem.Model.GroupPermission model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("insert into GroupPermission(");
            strSql.Append("group_id,permission_id,permission_type_id)");
            strSql.Append(" values (");
            strSql.Append("@group_id,@permission_id,@permission_type_id)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters = {
                    new SqlParameter("@group_id", SqlDbType.BigInt,8),
                    new SqlParameter("@permission_id", SqlDbType.BigInt,8),
                    new SqlParameter("@permission_type_id", SqlDbType.BigInt,8)};
            parameters[0].Value = model.group_id;
            parameters[1].Value = model.permission_id;
            parameters[2].Value = model.permission_type_id;

            object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters);
            if (obj == null)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt64(obj);
            }
        }
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public long Add(PermissionSystem.Model.PermissionType model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("insert into PermissionType(");
            strSql.Append("permission_type_value,permission_type_name,description)");
            strSql.Append(" values (");
            strSql.Append("@permission_type_value,@permission_type_name,@description)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters = {
                    new SqlParameter("@permission_type_value", SqlDbType.NVarChar,50),
                    new SqlParameter("@permission_type_name", SqlDbType.NVarChar,50),
                    new SqlParameter("@description", SqlDbType.NVarChar,200)};
            parameters[0].Value = model.permission_type_value;
            parameters[1].Value = model.permission_type_name;
            parameters[2].Value = model.description;

            object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters);
            if (obj == null)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt64(obj);
            }
        }
예제 #7
0
        public JsonResult LoadAccountPermission(string strFuncId, string strPermission)
        {
            //读取数据
            string           strErrText;
            PermissionSystem permission = new PermissionSystem();
            bool             data       = permission.LoadAccountPermission(long.Parse(strFuncId), strPermission, LoginAccountId, LoginStaffName, out strErrText);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
예제 #8
0
        private static void CCBan(ConCommandArgs args)
        {
            if (args.Count == 0)
            {
                Log.MessageNetworked(Lang.BAN_ARGS, args, LogLevel.Error);
                return;
            }
            try
            {
                NetworkUser nu = Util.GetNetUserFromString(args.userArgs);

                // Check if we can kick targeted user.
                if (!Application.isBatchMode)
                {
                    foreach (var serverLocalUsers in NetworkUser.readOnlyLocalPlayersList)
                    {
                        if (serverLocalUsers == nu)
                        {
                            Log.MessageNetworked("Specified user is hosting.", args, LogLevel.Error);
                            return;
                        }
                    }
                }
                else if (PermissionSystem.IsEnabled.Value)
                {
                    if (!PermissionSystem.HasMorePerm(args.sender, nu, args))
                    {
                        return;
                    }
                }

                NetworkConnection client = null;
                foreach (var connection in NetworkServer.connections)
                {
                    if (nu.connectionToClient == connection)
                    {
                        client = connection;
                        break;
                    }
                }

                if (client != null)
                {
                    var reason = new GameNetworkManager.SimpleLocalizedKickReason("KICK_REASON_BAN");
                    GameNetworkManager.singleton.InvokeMethod("ServerKickClient", client, reason);
                }
                else
                {
                    Log.MessageNetworked("Error trying to find the associated connection with the user", args, LogLevel.Error);
                }
            }
            catch
            {
                Log.MessageNetworked(Lang.PLAYER_NOTFOUND, args, LogLevel.Error);
            }
        }
예제 #9
0
        public App()
        {
            InitializeComponent();
            EnteredBackground  += OnEnteredBackground;
            LeavingBackground  += OnLeavingBackground;
            Resuming           += OnResuming;
            Suspending         += OnSuspending;
            UnhandledException += OnUnhandledException;

            if (SettingsManager.isFirstTimeRun())
            {
                SettingsManager.setDefaultSettings();
            }
            ObtainingAccess = PermissionSystem.RequestAllPermissions();
        }
예제 #10
0
        public JsonResult LoadFunctionPermission(string strFuncId, string strPermission)
        {
            //读取数据
            string           strErrText;
            PermissionSystem permission = new PermissionSystem();
            int data = permission.LoadFunctionPermission(long.Parse(strFuncId), strPermission, LoginAccountId, LoginStaffName, out strErrText);

            if (data < 0)
            {
                throw new Exception(strErrText);
            }
            if (data == 1)
            {
                return(Json(true, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }
        }
예제 #11
0
        private async void OnLaunchedOrActivated(IActivatedEventArgs args)
        {
            IsForeground = true;
            if (!PermissionSystem.IsAllPermissionsObtained && !await ObtainingAccess)
            {
                await Window.Current.Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
                {
                    ObtainingAccess = PermissionSystem.RequestAllPermissions();
                });

                await ObtainingAccess;
            }
            if (Initializating == null)
            {
                Initializating = InitializateSystems();
            }
            await Initializating;

            NotificationSystem.RemoveCallToastNotifications();
            UISystem.OnLaunchedOrActivated(args);
        }
예제 #12
0
 public bool CanEdit(SocketGuildUser user) =>
 IsOwner(user) || user.Roles.Any(role => PermissionSystem.HasRequiredPermission(role, PermissionLevel.Elevated));
예제 #13
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(PermissionSystem.Model.PermissionType model)
 {
     return dal.Update(model);
 }
예제 #14
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(PermissionSystem.Model.GroupRole model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("update GroupRole set ");
            strSql.Append("group_id=@group_id,");
            strSql.Append("role_id=@role_id");
            strSql.Append(" where group_role_id=@group_role_id");
            SqlParameter[] parameters = {
                    new SqlParameter("@group_id", SqlDbType.BigInt,8),
                    new SqlParameter("@role_id", SqlDbType.BigInt,8),
                    new SqlParameter("@group_role_id", SqlDbType.BigInt,8)};
            parameters[0].Value = model.group_id;
            parameters[1].Value = model.role_id;
            parameters[2].Value = model.group_role_id;

            int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
예제 #15
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(PermissionSystem.Model.User model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("update User set ");
            strSql.Append("organization_id=@organization_id,");
            strSql.Append("user_name=@user_name,");
            strSql.Append("password=@password,");
            strSql.Append("vsername=@vsername,");
            strSql.Append("create_time=@create_time");
            strSql.Append(" where user_id=@user_id");
            SqlParameter[] parameters = {
                    new SqlParameter("@organization_id", SqlDbType.BigInt,8),
                    new SqlParameter("@user_name", SqlDbType.NVarChar,50),
                    new SqlParameter("@password", SqlDbType.NVarChar,200),
                    new SqlParameter("@vsername", SqlDbType.NVarChar,50),
                    new SqlParameter("@create_time", SqlDbType.DateTime),
                    new SqlParameter("@user_id", SqlDbType.BigInt,8)};
            parameters[0].Value = model.organization_id;
            parameters[1].Value = model.user_name;
            parameters[2].Value = model.password;
            parameters[3].Value = model.vsername;
            parameters[4].Value = model.create_time;
            parameters[5].Value = model.user_id;

            int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
예제 #16
0
        private async void OnLaunchedOrActivated(IActivatedEventArgs args)
        {
            IsForeground = true;
            Frame frame = ConstructUI();

            Dispatcher = Window.Current.Dispatcher;
            if (!PermissionSystem.IsAllPermissionsObtained && !await ObtainingAccess)
            {
                await Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
                {
                    ObtainingAccess = PermissionSystem.RequestAllPermissions();
                });

                await ObtainingAccess;
            }
            if (Initializating == null)
            {
                Initializating = InitializateSystems();
            }
            await Initializating;

            UISystem.Initializate(Dispatcher);
            NotificationSystem.RemoveCallToastNotifications();
            switch (args.Kind)
            {
            case ActivationKind.Launch:
                LaunchActivatedEventArgs launchActivationArgs = args as LaunchActivatedEventArgs;
                if (launchActivationArgs.PrelaunchActivated == false)
                {
                    if (frame.Content == null)
                    {
                        if (PhoneCallManager.IsCallActive)
                        {
                            CompactOverlayId = await CallUIPage.ShowInCallUI();
                        }
                        frame.Navigate(typeof(MainPage), launchActivationArgs.Arguments);
                    }
                }
                break;

            case ActivationKind.LockScreen:
                LockApplicationHost            = LockApplicationHost.GetForCurrentView();
                LockApplicationHost.Unlocking += LockApplicationHost_Unlocking;
                frame.Navigate(typeof(MainPage));
                break;

            case ActivationKind.Protocol:
                ProtocolActivatedEventArgs protocolActivationArgs = args as ProtocolActivatedEventArgs;
                switch (protocolActivationArgs.Uri.Scheme)
                {
                case TEL:
                    frame.Navigate(typeof(MainPage), protocolActivationArgs.Uri.LocalPath);
                    break;

                default:
                    throw new NotSupportedException();
                }
                break;

            case ActivationKind.ToastNotification:
                ToastNotificationActivatedEventArgs toastActivationArgs = args as ToastNotificationActivatedEventArgs;
                OnToastNotificationActivated(ToastActivationType.Foreground, toastActivationArgs.Argument);
                break;

            default:
                throw new NotSupportedException();
            }
            Window.Current.Activate();
        }
 public bool Edit(PermissionSystem.Model.Organization model)
 {
     return organization.Update(model);
 }
예제 #18
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(PermissionSystem.Model.OperatorLog model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("update OperatorLog set ");
            strSql.Append("operator_type=@operator_type,");
            strSql.Append("operator_content=@operator_content,");
            strSql.Append("user_id=@user_id,");
            strSql.Append("operator_time=@operator_time");
            strSql.Append(" where operator_log_id=@operator_log_id");
            SqlParameter[] parameters = {
                    new SqlParameter("@operator_type", SqlDbType.NVarChar,50),
                    new SqlParameter("@operator_content", SqlDbType.NVarChar,200),
                    new SqlParameter("@user_id", SqlDbType.BigInt,8),
                    new SqlParameter("@operator_time", SqlDbType.DateTime),
                    new SqlParameter("@operator_log_id", SqlDbType.BigInt,8)};
            parameters[0].Value = model.operator_type;
            parameters[1].Value = model.operator_content;
            parameters[2].Value = model.user_id;
            parameters[3].Value = model.operator_time;
            parameters[4].Value = model.operator_log_id;

            int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
 public long Add(PermissionSystem.Model.Permission model)
 {
     return permission.Add(model);
 }
예제 #20
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public long Add(PermissionSystem.Model.Group model)
 {
     return dal.Add(model);
 }
 public bool Edit(PermissionSystem.Model.Permission model)
 {
     return permission.Update(model);
 }
예제 #22
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public long Add(PermissionSystem.Model.Organization model)
 {
     return dal.Add(model);
 }
예제 #23
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(PermissionSystem.Model.RolePermission model)
 {
     return dal.Update(model);
 }
예제 #24
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public long Add(PermissionSystem.Model.OperatorLog model)
 {
     return dal.Add(model);
 }
예제 #25
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(PermissionSystem.Model.OperatorLog model)
 {
     return dal.Update(model);
 }
예제 #26
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public long Add(PermissionSystem.Model.RolePermission model)
 {
     return dal.Add(model);
 }
예제 #27
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(PermissionSystem.Model.Organization model)
 {
     return dal.Update(model);
 }
예제 #28
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public long Add(PermissionSystem.Model.PermissionType model)
 {
     return dal.Add(model);
 }
예제 #29
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(PermissionSystem.Model.Group model)
 {
     return dal.Update(model);
 }
예제 #30
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(PermissionSystem.Model.Organization model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("update Organization set ");
            strSql.Append("parent_organization_id=@parent_organization_id,");
            strSql.Append("organization_name=@organization_name,");
            strSql.Append("create_time=@create_time,");
            strSql.Append("description=@description");
            strSql.Append(" where organization_id=@organization_id");
            SqlParameter[] parameters = {
                    new SqlParameter("@parent_organization_id", SqlDbType.BigInt,8),
                    new SqlParameter("@organization_name", SqlDbType.NVarChar,50),
                    new SqlParameter("@create_time", SqlDbType.DateTime),
                    new SqlParameter("@description", SqlDbType.NVarChar,200),
                    new SqlParameter("@organization_id", SqlDbType.BigInt,8)};
            parameters[0].Value = model.parent_organization_id;
            parameters[1].Value = model.organization_name;
            parameters[2].Value = model.create_time;
            parameters[3].Value = model.description;
            parameters[4].Value = model.organization_id;

            int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
예제 #31
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(PermissionSystem.Model.UserPermission model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("update UserPermission set ");
            strSql.Append("user_id=@user_id,");
            strSql.Append("permission_id=@permission_id,");
            strSql.Append("permission_type_id=@permission_type_id");
            strSql.Append(" where user_permission_id=@user_permission_id");
            SqlParameter[] parameters = {
                    new SqlParameter("@user_id", SqlDbType.BigInt,8),
                    new SqlParameter("@permission_id", SqlDbType.BigInt,8),
                    new SqlParameter("@permission_type_id", SqlDbType.BigInt,8),
                    new SqlParameter("@user_permission_id", SqlDbType.BigInt,8)};
            parameters[0].Value = model.user_id;
            parameters[1].Value = model.permission_id;
            parameters[2].Value = model.permission_type_id;
            parameters[3].Value = model.user_permission_id;

            int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
예제 #32
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(PermissionSystem.Model.PermissionType model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("update PermissionType set ");
            strSql.Append("permission_type_value=@permission_type_value,");
            strSql.Append("permission_type_name=@permission_type_name,");
            strSql.Append("description=@description");
            strSql.Append(" where permission_type_id=@permission_type_id");
            SqlParameter[] parameters = {
                    new SqlParameter("@permission_type_value", SqlDbType.NVarChar,50),
                    new SqlParameter("@permission_type_name", SqlDbType.NVarChar,50),
                    new SqlParameter("@description", SqlDbType.NVarChar,200),
                    new SqlParameter("@permission_type_id", SqlDbType.BigInt,8)};
            parameters[0].Value = model.permission_type_value;
            parameters[1].Value = model.permission_type_name;
            parameters[2].Value = model.description;
            parameters[3].Value = model.permission_type_id;

            int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
예제 #33
0
        private void OnCommand(Fougerite.Player player, string cmd, string[] args)
        {
            switch (cmd)
            {
            case "record":
            {
                if (player.Admin || PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "recorder.record"))
                {
                    if (args.Length == 0)
                    {
                        player.MessageFrom("Recorder", "Usage: /record name");
                        return;
                    }

                    object state = DataStore.GetInstance().Get("Recorder", player.UID);
                    if (state != null)
                    {
                        player.MessageFrom("Recorder", "Already Recording!");
                        return;
                    }

                    string name = string.Join("_", args).ToLower();
                    DataStore.GetInstance().Flush("RecordedData" + player.UID);
                    DataStore.GetInstance().Add("Recorder", player.UID, 1);
                    DataStore.GetInstance().Add("Recorder_Name", player.UID, name);
                    player.MessageFrom("Recorder", "Recording " + name + ".ini (/rstop to finish!)");
                }

                break;
            }

            case "rspawn":
                if (player.Admin || PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "recorder.rspawn"))
                {
                    if (args.Length != 2)
                    {
                        player.MessageFrom("Recorder", "Usage: /rspawn name.ini distance");
                        return;
                    }

                    float distance = 0f;
                    bool  success  = float.TryParse(args[1], out distance);
                    if (!success)
                    {
                        player.MessageFrom("Recorder", "Usage: /rspawn name.ini distance");
                        return;
                    }

                    if (!File.Exists(Path.Combine(ModuleFolder, "Buildings\\" + args[0])))
                    {
                        player.MessageFrom("Recorder", "Building not found!");
                        return;
                    }

                    IniParser file = new IniParser(Path.Combine(ModuleFolder, "Buildings\\" + args[0]));

                    DataStore.GetInstance().Flush("SpawnedData" + player.UID);
                    DataStore.GetInstance().Remove("RecorderSMs", player.UID);

                    Vector3 playerFront    = Util.GetUtil().Infront(player, distance);
                    float   groundposition = World.GetWorld().GetGround(playerFront.x, playerFront.z);
                    //playerFront.y = World.GetGround(playerFront.x, playerFront.z);

                    List <string> sections = file.Sections.Where(x => x != "Init").ToList();

                    StructureMaster master   = null;
                    int             failures = 0;
                    for (int i = 0; i < sections.Count; i++)
                    {
                        Vector3 entPos = Util.GetUtil().CreateVector(float.Parse(file.GetSetting("Part" + i, "PosX")),
                                                                     float.Parse(file.GetSetting("Part" + i, "PosY")),
                                                                     float.Parse(file.GetSetting("Part" + i, "PosZ")));


                        Vector3 spawnPos = Util.GetUtil().CreateVector(entPos.x + playerFront.x, entPos.y + groundposition,
                                                                       entPos.z + playerFront.z);

                        Quaternion spawnRot = Util.GetUtil().CreateQuat(float.Parse(file.GetSetting("Part" + i, "RotX")),
                                                                        float.Parse(file.GetSetting("Part" + i, "RotY")),
                                                                        float.Parse(file.GetSetting("Part" + i, "RotZ")),
                                                                        float.Parse(file.GetSetting("Part" + i, "RotW")));


                        if (master == null)
                        {
                            master = World.GetWorld()
                                     .CreateSM(player, spawnPos.x, spawnPos.y, spawnPos.z, spawnRot);
                        }

                        Entity go = null;
                        try
                        {
                            go = World.GetWorld().SpawnEntity(file.GetSetting("Part" + i, "Prefab"), spawnPos,
                                                              spawnRot);
                        }
                        catch
                        {
                            failures++;
                            // Ignore.
                            continue;
                        }

                        try
                        {
                            if (go.IsLootableObject())
                            {
                                LootableObject lootableObject = (LootableObject)go.Object;
                                go.ChangeOwner(player);
                                DataStore.GetInstance().Add("SpawnedData" + player.UID, "Part" + i,
                                                            lootableObject.gameObject);
                            }
                            else if (go.IsDeployableObject())
                            {
                                go.ChangeOwner(player);
                                DeployableObject deployableObject = (DeployableObject)go.Object;

                                DataStore.GetInstance().Add("SpawnedData" + player.UID, "Part" + i,
                                                            deployableObject.gameObject);
                            }
                            else if (go.IsBasicDoor())
                            {
                                BasicDoor door = (BasicDoor)go.Object;
                                go.ChangeOwner(player);
                                DataStore.GetInstance().Add("SpawnedData" + player.UID, "Part",
                                                            door.gameObject);
                            }
                            else if (go.IsStructure())
                            {
                                StructureComponent structureComponent = (StructureComponent)go.Object;

                                master.AddStructureComponent(structureComponent);
                                DataStore.GetInstance().Add("SpawnedData" + player.UID, "Part" + i,
                                                            structureComponent.gameObject);
                            }
                        }
                        catch (Exception ex)
                        {
                            Logger.LogError("[Recorder] Error: " + ex);
                            Logger.LogError("At prefab: " + file.GetSetting("Part" + i, "Prefab"));
                        }
                    }

                    player.MessageFrom("Recorder", args[0] + " was spawned !");
                    if (failures > 0)
                    {
                        player.MessageFrom("Recorder", failures + " amount of failures happened. This file might have wrong values!");
                    }
                }
                break;

            case "rlist":
                if (player.Admin || PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "recorder.rlist"))
                {
                    string[] files = Directory.GetFiles(Path.Combine(ModuleFolder, "Buildings\\"), "*.ini");

                    for (int i = 0; i < files.Length; i++)
                    {
                        files[i] = Path.GetFileName(files[i]);
                    }

                    player.MessageFrom("Recorder", "=== Files ===");
                    player.MessageFrom("Recorder", string.Join(", ", files));
                }

                break;

            case "rcancel":
                if (player.Admin || PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "recorder.rcancel"))
                {
                    int cpt = DataStore.GetInstance().Count("SpawnedData" + player.UID);
                    for (int i = 0; i < cpt; i++)
                    {
                        GameObject ent = DataStore.GetInstance().Get("SpawnedData" + player.UID, "Part" + i) as GameObject;
                        if (ent != null)
                        {
                            Util.GetUtil().DestroyObject(ent);
                        }
                        DataStore.GetInstance().Remove("Recorder", player.UID);
                        DataStore.GetInstance().Flush("RecordedData" + player.UID);
                        DataStore.GetInstance().Flush("SpawnedData" + player.UID);
                        DataStore.GetInstance().Remove("RecorderInit", player.UID);
                        DataStore.GetInstance().Remove("RecorderSMs", player.UID);
                    }

                    DataStore.GetInstance().Flush("SpawnedData" + player.UID);
                    player.Message("Cancelled recording");
                }
                break;

            case "rstop":
                if (player.Admin || PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "recorder.rstop"))
                {
                    string name = (string)DataStore.GetInstance().Get("Recorder_Name", player.UID);
                    if (File.Exists(Path.Combine(ModuleFolder, "Buildings\\" + name)))
                    {
                        var rnd  = new Random();
                        int rnd2 = rnd.Next(0, 500000);
                        player.Message(name + ".ini already exists ! renaming..");
                        name = name + rnd2;
                    }

                    name = name + ".ini";

                    Vector3 loc            = (Vector3)DataStore.GetInstance().Get("RecorderInit", player.UID);
                    float   groundposition = World.GetWorld().GetGround(loc.x, loc.z);
                    //loc.y = World.GetGround(loc.x, loc.z)

                    int cpt = DataStore.GetInstance().Count("RecordedData" + player.UID);
                    if (cpt == 0)
                    {
                        DataStore.GetInstance().Flush("RecordedData" + player.UID);
                        return;
                    }

                    if (!File.Exists(Path.Combine(ModuleFolder, "Buildings\\" + name)))
                    {
                        File.Create(Path.Combine(ModuleFolder, "Buildings\\" + name)).Dispose();
                    }
                    IniParser rfile = new IniParser(Path.Combine(ModuleFolder, "Buildings\\" + name));

                    for (int i = 0; i < cpt; i++)
                    {
                        Entity  ent    = (Entity)DataStore.GetInstance().Get("RecordedData" + player.UID, "Part" + i);
                        Vector3 entPos = new Vector3((ent.X - loc.x), (ent.Y - groundposition),
                                                     (ent.Z - loc.z));
                        Quaternion spawnRot = ent.Rotation;

                        rfile.AddSetting("Part" + i, "Prefab", Prefabs[ent.Name]);
                        rfile.AddSetting("Part" + i, "PosX", entPos.x.ToString(CultureInfo.CurrentCulture));
                        rfile.AddSetting("Part" + i, "PosY", entPos.y.ToString(CultureInfo.CurrentCulture));
                        rfile.AddSetting("Part" + i, "PosZ", entPos.z.ToString(CultureInfo.CurrentCulture));
                        rfile.AddSetting("Part" + i, "RotX", spawnRot.x.ToString(CultureInfo.CurrentCulture));
                        rfile.AddSetting("Part" + i, "RotY", spawnRot.y.ToString(CultureInfo.CurrentCulture));
                        rfile.AddSetting("Part" + i, "RotZ", spawnRot.z.ToString(CultureInfo.CurrentCulture));
                        rfile.AddSetting("Part" + i, "RotW", spawnRot.w.ToString(CultureInfo.CurrentCulture));
                    }

                    DataStore.GetInstance().Remove("Recorder", player.UID);
                    DataStore.GetInstance().Flush("RecordedData" + player.UID);
                    DataStore.GetInstance().Flush("SpawnedData" + player.UID);
                    DataStore.GetInstance().Remove("RecorderInit", player.UID);
                    DataStore.GetInstance().Remove("RecorderSMs", player.UID);
                    DataStore.GetInstance().Flush("SpawnedData" + player.UID);
                    rfile.Save();
                    player.MessageFrom("Recorder", name + " was saved !");
                }
                break;
            }
        }
예제 #34
0
        public void OnCommand(Fougerite.Player player, string cmd, string[] args)
        {
            if (cmd == "legitraid")
            {
                player.MessageFrom("LegitRaid",
                                   green + "LegitRaid " + yellow + " V" + Version + " [COLOR#FFFFFF] By " + Author);
                if (player.Admin || PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "legitraid.reload"))
                {
                    Settings           = new IniParser(PathC);
                    RaidTime           = int.Parse(Settings.GetSetting("Settings", "RaidTime"));
                    MaxRaidTime        = int.Parse(Settings.GetSetting("Settings", "MaxRaidTime"));
                    AllowAllModerators = Settings.GetBoolSetting("Settings", "AllowAllModerators");
                    CanOpenChestIfThereIsNoStructureClose =
                        Settings.GetBoolSetting("Settings", "CanOpenChestIfThereIsNoStructureClose");
                    AutoWhiteListFriends = Settings.GetBoolSetting("Settings", "AutoWhiteListFriends");
                    var Collect = Settings.GetSetting("Settings", "WhiteListedIDs");
                    var splits  = Collect.Split(',');
                    WhiteListedIDs.Clear();
                    foreach (var x in splits)
                    {
                        WhiteListedIDs.Add(x);
                    }

                    var Collect2 = Settings.GetSetting("Settings", "DataStoreTables");
                    var splits2  = Collect2.Split(',');
                    foreach (var x in splits2)
                    {
                        DSNames.Add(x);
                    }

                    player.MessageFrom("LegitRaid", "Reloaded!");
                }
            }
            else if (cmd == "flushlegita")
            {
                if (player.Admin || PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "legitraid.flushlegita"))
                {
                    DataStore.GetInstance().Flush("LegitRaidED");
                    player.MessageFrom("LegitRaid", "Flushed!");
                }
            }
            else if (cmd == "friendraid")
            {
                if (!RustPP || AutoWhiteListFriends)
                {
                    player.MessageFrom("LegitRaid", "Friends are AutoWhitelisted on this Server.");
                    return;
                }

                bool contains = DataStore.GetInstance().ContainsKey("LegitRaid", player.UID);
                if (!contains)
                {
                    DataStore.GetInstance().Add("LegitRaid", player.UID, true);
                    player.MessageFrom("LegitRaid", "Your friends can now open your chests.");
                }
                else
                {
                    DataStore.GetInstance().Remove("LegitRaid", player.UID);
                    player.MessageFrom("LegitRaid", "Your friends can not open your chests.");
                }
            }
            else if (cmd == "raida")
            {
                if (player.Admin || (player.Moderator && AllowAllModerators) ||
                    (player.Moderator && WhiteListedIDs.Contains(player.SteamID)) ||
                    PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "legitraid.raida"))
                {
                    bool contains = DataStore.GetInstance().ContainsKey("LegitRaidA", player.UID);
                    if (!contains)
                    {
                        DataStore.GetInstance().Add("LegitRaidA", player.UID, true);
                        player.MessageFrom("LegitRaid", "You can now open all the chests");
                        file = new System.IO.StreamWriter(PathLog, true);
                        file.WriteLine(DateTime.Now + " " + player.Name + "-" + player.SteamID +
                                       " entered all loot mode");
                        file.Close();
                    }
                    else
                    {
                        DataStore.GetInstance().Remove("LegitRaidA", player.UID);
                        player.MessageFrom("LegitRaid", "Disabled");
                        file = new System.IO.StreamWriter(PathLog, true);
                        file.WriteLine(DateTime.Now + " " + player.Name + "-" + player.SteamID + " quit all loot mode");
                        file.Close();
                    }
                }
            }
        }