public TimeWeatherSync(Server server) : base(server)
        {
            server.RegisterEventHandler("Sync.RequestTime", new Action <Player>(OnRequestTime));
            server.RegisterEventHandler("Sync.RequestWeather", new Action <Player>(OnRequestWeather));
            server.RegisterTickHandler(TimeTick);
            server.RegisterTickHandler(WeatherTick);

            CommandRegister.RegisterAdminCommand("freezetime", OnFreezeTime, AdminLevel.SuperAdmin);
            CommandRegister.RegisterAdminCommand("time", OnSetTime, AdminLevel.SuperAdmin);
            CommandRegister.RegisterAdminCommand("weather", OnSetWeather, AdminLevel.Admin);
        }
 public LoginHandler(Server server) : base(server)
 {
     server.RegisterEventHandler("Login.RequestCharacters", new Action <Player>(OnCharactersRequest));
     server.RegisterEventHandler("Login.CreateCharacter", new Action <Player, string, string, string>(OnCreateRequest));
     server.RegisterEventHandler("Login.LoadCharacter", new Action <Player, int>(OnLoadRequest));
     server.RegisterEventHandler("Login.DeleteCharacter", new Action <Player, int>(OnCharacterDelete));
     CommandRegister.RegisterAdminCommand("logout", cmd => OnCharactersRequest(cmd.Player), AdminLevel.Developer);
     CommandRegister.RegisterCommand("showlogin", cmd =>
     {
         OnCharactersRequest(cmd.Player);
     });
 }
예제 #3
0
        public DevEnviroment(Server server) : base(server)
        {
            IsDebugInstance      = GetConvar("mg_debugInstance", "false") == "true";
            EnableVerboseLogging = GetConvar("mg_enableVerboseLogging", "false") == "true";

            CommandRegister.RegisterAdminCommand("dev", OnDevCommand, AdminLevel.Developer);
            CommandRegister.RegisterAdminCommand("debug", OnSetDebug, AdminLevel.SuperAdmin);
            CommandRegister.RegisterAdminCommand("verbose", OnSetVerbose, AdminLevel.SuperAdmin);

            RegisterDevCommand("eui", OnSetEntityUI);
            RegisterDevCommand("removevehaccess", OnRemoveVehicleAccess);

            Log.Info($"Debug instance is {(IsDebugInstance ? "enabled" : "disabled")}");
            Log.Info($"Verbose logging is {(EnableVerboseLogging ? "enabled" : "disabled")}");
        }
        public SessionManager(Server server) : base(server)
        {
            server.RegisterEventHandler("playerConnecting", new Action <Player, string, dynamic, dynamic>(OnInitialConnect));
            server.RegisterEventHandler("playerDropped", new Action <Player, string>(OnPlayerDropped));
            server.RegisterEventHandler("Session.Loaded", new Action <Player>(OnPlayerLoaded));
            server.RegisterEventHandler("Session.UpdateClientData", new Action <Player, string, string>(OnDataUpdate));
            server.RegisterEventHandler("Session.SetPlayerStatus", new Action <Player, string, dynamic>(OnSetStatus)); // TEMP
            server.RegisterEventHandler("chatMessage", new Action <int, string, string>(OnChatMessageEntered));
            server.RegisterLocalEvent("Log.ToDatabase", new Action <string, string, string, string>(OnLogData));
            server.RegisterTickHandler(SaveTick);
            CommandRegister.RegisterAdminCommand("listuser", cmd =>
            {
                var player = GetPlayer(cmd.GetArgAs(0, 0));
                if (player == null)
                {
                    return;
                }

                Log.Info($"Server ID: {player.ServerID}");
                Log.Info($"Player name: {player.PlayerName}");
                Log.Info($"Player ped handle: {player.Ped?.Handle}");
                Log.Info($"Position: {player.Position}");
                foreach (var kvp in player.GlobalData)
                {
                    Log.Info($"{kvp.Key} - {kvp.Value}");
                }

                foreach (var kvp in player.LocalData)
                {
                    Log.Info($"{kvp.Key} - {kvp.Value}");
                }

                foreach (var kvp in player.ServerData)
                {
                    Log.Info($"{kvp.Key} - {kvp.Value}");
                }
            }, AdminLevel.SuperAdmin);
            CommandRegister.RegisterAdminCommand("saveusers", cmd => SaveAllUsers(), AdminLevel.SuperAdmin);
            CommandRegister.RegisterAdminCommand("savealldata|savedata", cmd =>
            {
                CitizenFX.Core.Native.API.ExecuteCommand("saveusers");
                CitizenFX.Core.Native.API.ExecuteCommand("savevehicles");
                CitizenFX.Core.Native.API.ExecuteCommand("saveproperties");
            }, AdminLevel.SuperAdmin);
            //loadPrivellagedUsers();
        }
 public SharedEmergencyItems()
 {
     CommandRegister.RegisterJobCommand("duty", OnDutyRequest, JobType.Police | JobType.EMS | JobType.Mechanic, true);
     CommandRegister.RegisterCommand("911", on911Command);
     CommandRegister.RegisterJobCommand("911r", on911Reply, JobType.Police | JobType.EMS);
     CommandRegister.RegisterCommand("311", on311Command);
     CommandRegister.RegisterJobCommand("311r", on311Reply, JobType.Police | JobType.EMS);
     CommandRegister.RegisterJobCommand("cv", cmd => cmd.Player.TriggerEvent("Job.SpawnServiceVehicle", cmd.GetArgAs(0, 1) - 1), JobType.Police | JobType.EMS);
     CommandRegister.RegisterJobCommand("impound", cmd => cmd.Player.TriggerEvent("Job.DeleteVehicle", true), JobType.Police | JobType.EMS | JobType.Mechanic | JobType.Tow);
     CommandRegister.RegisterJobCommand("fix", cmd => cmd.Player.TriggerEvent("Job.FixVehicle"), JobType.Police | JobType.EMS | JobType.Mechanic);
     CommandRegister.RegisterJobCommand("dv", cmd => cmd.Player.TriggerEvent("Job.DeleteVehicle"), JobType.Police | JobType.EMS);
     CommandRegister.RegisterAdminCommand("dv", cmd => cmd.Player.TriggerEvent("Job.DeleteVehicle"), AdminLevel.Moderator);
     CommandRegister.RegisterJobCommand("13", OnPanicButton, JobType.Police | JobType.EMS);
     CommandRegister.RegisterJobCommand("slimjim", cmd => cmd.Player.TriggerEvent("Lockpick.StartVehicleLockpick", 2), JobType.EMS | JobType.Police | JobType.Mechanic);
     CommandRegister.RegisterJobCommand("extra", cmd => cmd.Player.TriggerEvent("Job.SetVehicleExtra", cmd.GetArgAs(0, "1"), cmd.GetArgAs(1, "false")), JobType.Police | JobType.EMS);
     CommandRegister.RegisterJobCommand("setspawn", OnSetSpawn, JobType.EMS | JobType.Police, true);
     CommandRegister.RegisterJobCommand("resetspawn", OnResetSpawn, JobType.EMS | JobType.Police, true);
     CommandRegister.RegisterJobCommand("discount", cmd => cmd.Player.TriggerEvent("LSC:magicmechanic"), JobType.Mechanic);
     CommandRegister.RegisterJobCommand("setcallsign", OnSetCallsign, JobType.Police | JobType.EMS);
 }
예제 #6
0
        public Admin(Server server) : base(server)
        {
            CommandRegister.RegisterAdminCommand("setadminlevel", SetPermissionLevel, AdminLevel.SuperAdmin);
            CommandRegister.RegisterAdminCommand("kick", KickPlayer, AdminLevel.Moderator);
            CommandRegister.RegisterAdminCommand("bring", OnBringCommand, AdminLevel.Admin);
            CommandRegister.RegisterAdminCommand("return", OnReturnCommand, AdminLevel.Admin);
            CommandRegister.RegisterAdminCommand("mute", OnMuteCommand, AdminLevel.Admin);
            CommandRegister.RegisterAdminCommand("unmute", OnUnMuteCommand, AdminLevel.Admin);
            CommandRegister.RegisterAdminCommand("freeze", OnFreezeCommand, AdminLevel.Admin);
            CommandRegister.RegisterAdminCommand("unfreeze", OnUnFreezeCommand, AdminLevel.Admin);
            CommandRegister.RegisterAdminCommand("announce", OnAnnounceCommand, AdminLevel.Admin);
            CommandRegister.RegisterAdminCommand("say", OnSayCommand, AdminLevel.SuperAdmin);
            CommandRegister.RegisterAdminCommand("playerlist", OnPlayerlistCommand, AdminLevel.Moderator);
            CommandRegister.RegisterAdminCommand("sc", OnStaffChatCommand, AdminLevel.Moderator);

            CommandRegister.RegisterRCONCommand("kickall", cmd =>
            {
                foreach (var player in /*Server.PlayerList.ToList()*/ Players.ToList())
                {
                    player.Drop(string.Join(" ", cmd.Args));
                }
            });
        }
예제 #7
0
 public Bans(Server server) : base(server)
 {
     CommandRegister.RegisterAdminCommand("ban", OnBanCommand, AdminLevel.Admin);
     loadBanTags();
 }
        public JobHandler(Server server) : base(server)
        {
            server.RegisterEventHandler("Job.SetPlayerJob", new Action <Player, string>(OnRemoteJobSet));
            server.RegisterEventHandler("Job.SetDutyState", new Action <Player, bool>(OnSetDutyState));
            CommandRegister.RegisterAdminCommand("copadd", cmd =>
            {
                var targetPlayer = cmd.GetArgAs <int>(0);
                var targetObject = Sessions.GetPlayer(targetPlayer);
                if (targetObject != null)
                {
                    SetPlayerJob(targetObject, JobType.Police);
                    Log.ToClient("[Job]", "You are now a police officer", ConstantColours.Job, targetObject.Source);
                    Log.ToClient("[Admin]", $"You made {targetObject.PlayerName} a police officer", ConstantColours.Admin, cmd.Player);
                    Sessions.TriggerSessionEvent("OnPermissionRefresh", cmd.Session);
                }
                else
                {
                    cmd.Session.Message($"Invalid ID");
                }
            }, AdminLevel.Moderator);
            CommandRegister.RegisterAdminCommand("emsadd", cmd =>
            {
                var targetPlayer = cmd.GetArgAs <int>(0);
                var targetObject = Sessions.GetPlayer(targetPlayer);
                if (targetObject != null)
                {
                    SetPlayerJob(targetObject, JobType.EMS);
                    Log.ToClient("[Job]", "You are now an EMS", ConstantColours.Job, targetObject.Source);
                    Log.ToClient("[Admin]", $"You made {targetObject.PlayerName} an EMS", ConstantColours.Admin, cmd.Player);
                    Sessions.TriggerSessionEvent("OnPermissionRefresh", cmd.Session);
                }
                else
                {
                    cmd.Session.Message($"Invalid ID");
                }
            }, AdminLevel.Moderator);
            CommandRegister.RegisterAdminCommand("mechadd", cmd =>
            {
                var targetPlayer = cmd.GetArgAs <int>(0);
                var targetObject = Sessions.GetPlayer(targetPlayer);
                if (targetObject != null)
                {
                    SetPlayerJob(targetObject, JobType.Mechanic);
                    Log.ToClient("[Job]", "You are now a mechanic", ConstantColours.Job, targetObject.Source);
                    Log.ToClient("[Admin]", $"You made {targetObject.PlayerName} a mechanic", ConstantColours.Admin, cmd.Player);
                    Sessions.TriggerSessionEvent("OnPermissionRefresh", cmd.Session);
                }
                else
                {
                    cmd.Session.Message($"Invalid ID");
                }
            }, AdminLevel.Moderator);
            CommandRegister.RegisterAdminCommand("realtoradd", cmd =>
            {
                var targetPlayer = cmd.GetArgAs <int>(0);
                var targetObject = Sessions.GetPlayer(targetPlayer);
                if (targetObject != null)
                {
                    SetPlayerJob(targetObject, JobType.Realtor);
                    Log.ToClient("[Job]", "You are now a realtor", ConstantColours.Job, targetObject.Source);
                    Log.ToClient("[Admin]", $"You made {targetObject.PlayerName} a realtor", ConstantColours.Admin, cmd.Player);
                    Sessions.TriggerSessionEvent("OnPermissionRefresh", cmd.Session);
                }
                else
                {
                    cmd.Session.Message($"Invalid ID");
                }
            }, AdminLevel.Moderator);
            CommandRegister.RegisterAdminCommand("coprem|emsrem|mechrem|realtorrem", resetPlayerJob, AdminLevel.Moderator);
            CommandRegister.RegisterAdminCommand("getplayersonjob", OnJobCheck, AdminLevel.SuperAdmin);
            CommandRegister.RegisterAdminCommand("addperm", cmd =>
            {
                var player = cmd.GetArgAs(0, 0);

                cmd.Args.RemoveAt(0);

                var targetSession = Sessions.GetPlayer(player);

                if (targetSession == null)
                {
                    return;
                }

                var curPerms = cmd.Session.Permissions;
                curPerms.Add(string.Join(";", cmd.Args));

                targetSession.Permissions = curPerms;

                Sessions.TriggerSessionEvent("OnJobPermissionRefresh", targetSession);
            }, AdminLevel.Admin);
            CommandRegister.RegisterAdminCommand("showperm", cmd =>
            {
                var player = cmd.GetArgAs(0, 0);

                cmd.Args.RemoveAt(0);

                var targetSession = Sessions.GetPlayer(player);

                if (targetSession == null)
                {
                    return;
                }

                targetSession.ListPermissions();
            }, AdminLevel.SuperAdmin);
            loadJobClasses();
        }
예제 #9
0
        public VehicleManager(Server server) : base(server)
        {
            //Session = Sessions;
            //server.RegisterEventHandler("Vehicle.RequestGarageVehicles", new Action<Player, string>(OnVehiclesRequest));
            //server.RegisterEventHandler("Vehicle.RequestVehicleData", new Action<Player, int>(OnDataRequest));
            //server.RegisterEventHandler("Vehicle.CreateExternalVehicle", new Action<Player, string>(OnCreateExternalVehicle));
            //server.RegisterEventHandler("Vehicle.GiveKeyAccess", new Action<Player, int, int>(OnGiveKeyAccess));
            //server.RegisterEventHandler("Vehicle.GiveVehicleOwnership", new Action<Player, int, int>(OnGiveVehOwnership));
            //server.RegisterEventHandler("Vehicle.ImpoundVehicle", new Action<Player, int>(OnImpoundVehicle));
            //server.RegisterEventHandler("Vehicles.UpdateVehicleData", new Action<Player, int, string>(OnDataUpdate));
            //server.RegisterEventHandler("Vehicles.StoreOwnedVehicle", new Action<Player, int, string, string>(OnStoreVehicle));
            //server.RegisterEventHandler("Vehicles.SetIndicatorStatus", new Action<Player, string, bool>(OnSetIndicator));
            server.RegisterTickHandler(SaveVehicleTick);
            CommandRegister.RegisterAdminCommand("listvehdata", cmd =>
            {
                var veh = GetVehicle(cmd.GetArgAs <int>(0));
                foreach (var property in veh.GetType().GetRuntimeProperties())
                {
                    dynamic propertyValue = property.GetValue(veh, null);
                    var propertyString    = propertyValue.ToString();
                    if (propertyValue.GetType() == typeof(List <int>))
                    {
                        propertyString = "";
                        foreach (var val in propertyValue)
                        {
                            propertyString += $"{val},";
                        }
                    }
                    Log.Info($"{property.Name}: {propertyString}");
                }
            }, AdminLevel.Developer);
            CommandRegister.RegisterAdminCommand("savevehicles", cmd => SaveAllVehicles(), AdminLevel.SuperAdmin);
            Task.Factory.StartNew(async() =>
            {
                await BaseScript.Delay(5000);
                MySQL.execute("UPDATE vehicle_data SET OutGarage = false");

                MySQL.execute("SELECT * FROM vehicle_data", new Dictionary <string, dynamic>
                {
                }, new Action <List <dynamic> >(data =>
                {
                    foreach (var veh in data)
                    {
                        try
                        {
                            VehicleDataModel mods = JsonConvert.DeserializeObject <VehicleDataModel>(veh.mods);
                            if (mods.Model == 0)
                            {
                                MySQL.execute("UPDATE bank_accounts SET Balance = Balance + @price WHERE OwnerID = @id", new Dictionary <string, dynamic>
                                {
                                    {
                                        "@price", veh.VehiclePrice
                                    },
                                    {
                                        "@id", veh.CharID
                                    }
                                });
                                MySQL.execute("DELETE FROM vehicle_data WHERE VehID = @id", new Dictionary <string, dynamic>
                                {
                                    {
                                        "@id", veh.VehID
                                    }
                                });
                            }
                        }
                        catch { }
                    }
                }));
            });
        }