public void Setup() { config = new MogmogConfiguration(); mogmog = new TestMogmogPlugin(); mogmog.SetCommandHandler(fakeCommandHandler.Object); mogmog.SetConfig(config); mogmog.SetConnectionManager(fakeConnectionManager.Object); }
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))); }
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); }
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(); }