Exemple #1
0
 public void Setup()
 {
     config = new MogmogConfiguration();
     mogmog = new TestMogmogPlugin();
     mogmog.SetCommandHandler(fakeCommandHandler.Object);
     mogmog.SetConfig(config);
     mogmog.SetConnectionManager(fakeConnectionManager.Object);
 }
Exemple #2
0
        public void Dispose_ClosesUpgradeLayer()
        {
            var config            = new MogmogConfiguration();
            var http              = new HttpClient();
            var connectionManager = new MogmogInteropConnectionManager(config, http);

            connectionManager.Dispose();
            var processes = Process.GetProcessesByName("Mogmog.FFXIV.UpgradeLayer");

            Assert.IsTrue(processes.Length == 0, "Expected empty array, got {0}", string.Join(",", processes.Select((process) => process.ProcessName)));
        }
Exemple #3
0
        public MogmogInteropConnectionManager(MogmogConfiguration config, HttpClient client)
        {
            this.client = client;
            this.ipc    = new IpcInterface(client);

            this.ipc.On <ChatMessageInterop>(ChatMessageReceived);
            this.ipc.On <GenericInterop>(LogMessageReceived);

            var filePath         = Path.Combine(Assembly.GetExecutingAssembly().Location, "..", "Mogmog.FFXIV.UpgradeLayer.exe");
            var serializedConfig = JsonConvert.SerializeObject(config).Replace("\"", "\\\"");
            var args             = $"{serializedConfig} {this.ipc.PartnerPort} {this.ipc.Port}";
            var startInfo        = new ProcessStartInfo(filePath, string.Join(" ", args))
            {
                CreateNoWindow  = true,
                UseShellExecute = false,
                WindowStyle     = ProcessWindowStyle.Hidden,
            };

            this.upgradeLayer = Process.Start(startInfo);
        }
Exemple #4
0
        public CommandHandler(MogmogPlugin parent, MogmogConfiguration config, DalamudPluginInterface dalamud)
        {
            this.parent  = parent ?? throw new ArgumentNullException(nameof(parent));
            this.config  = config ?? throw new ArgumentNullException(nameof(config));
            this.dalamud = dalamud ?? throw new ArgumentNullException(nameof(dalamud));

            this.commands = new Dictionary <string, CommandInfo>();
            AddCommand("/mgadd", this.parent.AddHost, CommandInfoMessages.Add);
            AddCommand("/mgremove", this.parent.RemoveHost, CommandInfoMessages.Remove);
            AddCommand("/mgreload", this.parent.ReloadHost, CommandInfoMessages.Reload);
            AddCommand("/mgblock", this.parent.BlockUser, CommandInfoMessages.Block);
            AddCommand("/mgunblock", this.parent.UnblockUser, CommandInfoMessages.Unblock);
            AddCommand("/mgban", this.parent.BanUser, CommandInfoMessages.Ban + " " + string.Format(CultureInfo.InvariantCulture, CommandInfoMessages.TargetUserUsage, "/mgban"));
            AddCommand("/mgunban", this.parent.UnbanUser, CommandInfoMessages.Unban + " " + string.Format(CultureInfo.InvariantCulture, CommandInfoMessages.TargetUserUsage, "/mgunban"));
            AddCommand("/mgtempban", this.parent.TempbanUser, CommandInfoMessages.Tempban + " " + string.Format(CultureInfo.InvariantCulture, CommandInfoMessages.TargetUserUsage, "/mgtempban"));
            AddCommand("/mgkick", this.parent.KickUser, CommandInfoMessages.Kick + " " + string.Format(CultureInfo.InvariantCulture, CommandInfoMessages.TargetUserUsage, "/mgkick"));
            AddCommand("/mgmute", this.parent.MuteUser, CommandInfoMessages.Mute + " " + string.Format(CultureInfo.InvariantCulture, CommandInfoMessages.TargetUserUsage, "/mgmute"));
            AddCommand("/mgunmute", this.parent.UnmuteUser, CommandInfoMessages.Unmute + " " + string.Format(CultureInfo.InvariantCulture, CommandInfoMessages.TargetUserUsage, "/mgunmute"));
            AddChatHandlers();
        }