/// <summary> /// Initializes a new instance of the <see cref="Controller"/> class. /// </summary> /// <param name="logger">The message logger.</param> /// <param name="events">The server event manager.</param> /// <param name="rpc">The RPC handler.</param> /// <param name="rcon">The RCON handler.</param> protected Controller(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon) { this.Logger = logger; this.Events = events; this.Rpc = rpc; this.Rcon = rcon; }
public ChatController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration) : base(logger, events, rpc, rcon, configuration) { this.Rpc.Event(RpcEvents.ChatSendMessage).On <ChatMessage>((e, message) => { this.Logger.Debug($"Got message: {message.Content}"); this.Rpc.Event(RpcEvents.ChatSendMessage).Trigger(message); }); }
public CharactersController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration) : base(logger, events, rpc, rcon, configuration) { this.Rpc.Event(CharacterEvents.Load).On(Load); this.Rpc.Event(CharacterEvents.Create).On <Character>(Create); this.Rpc.Event(CharacterEvents.Delete).On <Guid>(Delete); }
public InventoryController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration) : base(logger, events, rpc, rcon, configuration) { // Send configuration when requested this.Rpc.Event(InventoryEvents.Configuration).On(e => e.Reply(this.Configuration)); }
public DatabaseController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, DatabaseConfiguration configuration) : base(logger, events, rpc, rcon, configuration) { // Set global database options ServerConfiguration.DatabaseConnection = this.Configuration.Connection.ToString(); ServerConfiguration.AutomaticMigrations = this.Configuration.Migrations.Automatic; // Enable SQL query logging MySqlTrace.Switch.Level = SourceLevels.All; MySqlTrace.Listeners.Add(new ConsoleTraceListener()); BootHistory lastBoot; using (var context = new StorageContext()) { // Create database if needed if (!context.Database.Exists()) { this.Logger.Info($"No existing database found, creating new database \"{this.Configuration.Connection.Database}\""); context.Database.CreateIfNotExists(); } lastBoot = context.BootHistory.OrderByDescending(b => b.Created).FirstOrDefault() ?? new BootHistory(); this.currentBoot = new BootHistory(); context.BootHistory.Add(this.currentBoot); context.SaveChanges(); } Task.Factory.StartNew(UpdateBootHistory); this.Events.OnRequest(BootEvents.GetTime, () => this.currentBoot.Created); this.Events.OnRequest(BootEvents.GetLastTime, () => lastBoot.Created); this.Events.OnRequest(BootEvents.GetLastActiveTime, () => lastBoot.LastActive); }
public BusinessFrameworkController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration) : base(logger, events, rpc, rcon, configuration) { // Send configuration when requested this.Rpc.Event(BusinessFrameworkEvents.Configuration).On(e => e.Reply(this.Configuration)); this.Rpc.Event(BusinessFrameworkEvents.BusinessRequestDefault).On(FetchDefaults); //SeedDefaults(); }
public VehiclesController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration, IClientList clientList) : base(logger, events, rpc, rcon, configuration) { this.clientList = clientList; this.characterManager = new CharacterManager(this.Events, this.Rpc); this.sessionManager = new SessionManager(this.Events, this.Rpc); }
/// <inheritdoc /> /// <summary> /// Initializes a new instance of the <see cref="ConfigurableController{T}"/> class. /// </summary> /// <param name="logger">The message logger.</param> /// <param name="events">The server event manager.</param> /// <param name="rpc">The RPC handler.</param> /// <param name="rcon">The RCON handler.</param> /// <param name="configuration">The configuration loaded from file.</param> protected ConfigurableController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, T configuration) : base(logger, events, rpc, rcon) { this.Configuration = configuration; }
public QueueController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration) : base(logger, events, rpc, rcon, configuration) => Startup();
public InventoryUiController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration, CharacterManager characterManager) : base(logger, events, rpc, rcon, configuration) { this.CharacterManager = characterManager; // Send configuration when requested this.Rpc.Event(InventoryUiEvents.Configuration).On(e => e.Reply(this.Configuration)); this.CharacterManager.Selected += OnCharacterSelect; }
/// <inheritdoc /> public StreetPositionController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration) : base(logger, events, rpc, rcon, configuration) { this.Rpc.Event(StreetPositionEvents.GetConfig).On(e => e.Reply(this.Configuration)); }
public SessionController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, SessionConfiguration configuration) : base(logger, events, rpc, rcon, configuration) { API.EnableEnhancedHostSupport(true); this.Events.On(ServerEvents.ServerInitialized, OnSeverInitialized); this.Rpc.Event("hostingSession").OnRaw(new Action <Player>(OnHostingSession)); this.Rpc.Event("HostedSession").OnRaw(new Action <Player>(OnHostedSession)); this.Rpc.Event("playerConnecting").OnRaw(new Action <Player, string, CallbackDelegate, ExpandoObject>(Connecting)); this.Rpc.Event("playerDropped").OnRaw(new Action <Player, string, CallbackDelegate>(Dropped)); this.Rpc.Event(RpcEvents.ClientInitialize).On <string>(Initialize); this.Rpc.Event(RpcEvents.ClientInitialized).On(Initialized); this.Rpc.Event(SessionEvents.DisconnectPlayer).On <string>(Disconnect); this.Events.OnRequest(SessionEvents.GetMaxPlayers, () => this.Configuration.MaxClients); this.Events.OnRequest(SessionEvents.GetCurrentSessionsCount, () => this.sessions.Count); this.Events.OnRequest(SessionEvents.GetCurrentSessions, () => this.sessions.ToList()); }
public MetricsController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration) : base(logger, events, rpc, rcon, configuration) { this.client = new ElasticLowLevelClient(new ConnectionConfiguration(new Uri($"http://{this.Configuration.Host}:{this.Configuration.Port}"))); this.Events.On <object>("metric", async data => await Store(data)); this.Rpc.Event("metric").On(new Action <IRpcEvent, object>(async(e, data) => await Store(data))); }
public LoginController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration) : base(logger, events, rpc, rcon, configuration) { this.BCryptHelper = new BCryptHelper(this.Configuration.GlobalSalt, this.Configuration.BCryptCost); this.LoginAttempts = new Dictionary <int, int>(); this.LoggedInAccounts = new List <Account>(); // Send configuration when requested this.Rpc.Event(LoginEvents.Configuration).On(e => e.Reply(new PublicConfiguration(this.Configuration))); this.Rpc.Event(LoginEvents.Register).On <string, string>(OnRegistrationRequested); this.Rpc.Event(LoginEvents.Login).On <string, string>(OnLoginRequested); this.Rpc.Event(LoginEvents.AuthenticationStarted).On(OnAuthenticationStarted); this.Events.OnRequest(LoginEvents.GetCurrentAccountsCount, () => this.LoggedInAccounts.Count); this.Events.OnRequest(LoginEvents.GetCurrentAccounts, () => this.LoggedInAccounts); // Listen for NFive SessionManager plugin events var sessions = new SessionManager.Server.SessionManager(this.Events, this.Rpc); sessions.ClientDisconnected += OnClientDisconnected; }
public GateGuardController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration) : base(logger, events, rpc, rcon, configuration) { this.Logger.Info($"Running in {this.Configuration.Mode.ToString().ToLower()} mode"); this.Logger.Info($"Database update interval: Every {this.Configuration.Database.ReloadInterval.ToFriendly()}"); this.Rpc.Event(GateGuardEvents.RuleCreate).On <Guid, GateGuard.AccessRule, string, DateTime?>(OnRuleCreate); this.Rpc.Event(GateGuardEvents.RuleDelete).On <Guid>(OnRuleDelete); // Listen for NFive SessionManager plugin events var sessions = new SessionManager.Server.SessionManager(this.Events, this.Rpc); sessions.SessionCreated += OnSessionCreated; // ReSharper disable once FunctionNeverReturns Task.Factory.StartNew(async() => { while (true) { Load(); await Task.Delay(this.Configuration.Database.ReloadInterval); } }); }
public SessionController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, SessionConfiguration configuration) : base(logger, events, rpc, rcon, configuration) { }
public DebugController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration) : base(logger, events, rpc, rcon, configuration) { this.Rpc.Event(DebugEvents.Configuration).On(e => e.Reply(this.Configuration)); }
public CharactersController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration, InventoryManager inventoryManager) : base(logger, events, rpc, rcon, configuration) { // Send configuration when requested this.Rpc.Event(CharacterEvents.Configuration).On(e => e.Reply(this.Configuration)); this.Rpc.Event(CharacterEvents.Load).On(Load); this.Rpc.Event(CharacterEvents.Create).On <Character>(Create); this.Rpc.Event(CharacterEvents.Delete).On <Guid>(Delete); this.Rpc.Event(CharacterEvents.Select).On <Guid>(Select); this.Rpc.Event(CharacterEvents.SaveCharacter).On <Character>(SaveCharacter); this.Rpc.Event(CharacterEvents.SavePosition).On <Guid, Position>(SavePosition); this.Rpc.Event(CharacterEvents.SaveHeritage).On <Guid, CharacterHeritage>(SaveHeritage); this.Rpc.Event(CharacterEvents.SaveFacialTrait).On <Guid, CharacterFacialTrait>(SaveFacialTrait); this.Rpc.Event(CharacterEvents.SaveTrait).On <Guid, CharacterTrait>(SaveTrait); this.Rpc.Event(CharacterEvents.SaveStyle).On <Guid, CharacterStyle>(SaveStyle); this.Events.OnRequest(CharacterEvents.GetActive, () => this.characterSessions); this.inventoryManager = inventoryManager; // Listen for NFive SessionManager plugin events this.sessionManager = new SessionManager(this.Events, this.Rpc); this.sessionManager.ClientDisconnected += OnClientDisconnected; Cleanup(); }
public LoginController(ILogger logger, IEventManager events, IRpcHandler rpc, IRconManager rcon, Configuration configuration) : base(logger, events, rpc, rcon, configuration) { this.bcrypt = new BCryptHelper(this.Configuration.GlobalSalt, this.Configuration.BcryptCost); // Send configuration when requested this.Rpc.Event(LoginEvents.Configuration).On(e => e.Reply(new PublicConfiguration(this.Configuration))); this.Rpc.Event(LoginEvents.Register).On <Credentials>(OnRegistrationRequested); this.Rpc.Event(LoginEvents.Login).On <Credentials>(OnLoginRequested); this.Rpc.Event(LoginEvents.AuthenticationStarted).On(OnAuthenticationStarted); this.Events.OnRequest(LoginEvents.GetCurrentAccounts, () => this.loggedInAccounts); // Listen for NFive session events this.sessions = new SessionManager(this.Events, this.Rpc); this.sessions.ClientDisconnected += OnClientDisconnected; }