private void RunSpecificScriptOnPacket(object sender, RoutedEventArgs e) { var scriptView = new ScriptSelectView("Scripts"); scriptView.ShowDialog(); var toLoad = scriptView.GetSelectedScripts(); var provider = new ScriptingProvider(); provider.LoadScripts(toLoad); var items = PacketListView.SelectedItems; foreach (var item in items) { var packet = item as PacketEntry; try { Scripting_RunOnPacket(packet, provider); } catch (Exception exc) { new ExtendedErrorView( $"Scripting exception thrown for {packet.Message} - {packet.Name}.", exc.ToString(), "Error").ShowDialog(); return; } } }
private void Scripting_ReloadScripts(object sender, RoutedEventArgs e) { if (_selectedScripts.Length == 0) { MessageBox.Show("No scripts were selected.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } ScriptProvider = new ScriptingProvider(); ScriptProvider.LoadScripts(_selectedScripts); }
private void Scripting_SelectScripts(object sender, RoutedEventArgs e) { var scriptView = new ScriptSelectView("Scripts"); scriptView.ShowDialog(); var toLoad = scriptView.GetSelectedScripts(); ScriptProvider = new ScriptingProvider(); ScriptProvider.LoadScripts(toLoad); _selectedScripts = toLoad; }
public BeforeInsertValidator(string tableName, string script, ScriptingProvider provider) { _tableName = tableName; _provider = provider; _scriptingEngine = provider switch { ScriptingProvider.Lua => new LuaScriptingEngine(script), ScriptingProvider.Javascript => new JavascriptScriptingEngine(script), _ => throw new ArgumentOutOfRangeException(nameof(provider), provider, null) }; }
private void Scripting_RunOnPacket(PacketEntry item, ScriptingProvider provider) { PacketEventArgs args = null; string structText = null; structText = item.Direction == "S" ? _db.GetServerZoneStruct(int.Parse(item.Message, NumberStyles.HexNumber)) : _db.GetClientZoneStruct(int.Parse(item.Message, NumberStyles.HexNumber)); if (structText != null) { if (structText.Length != 0) { try { var structProvider = new Struct(); var structEntries = structProvider.Parse(structText, item.Data); args = new PacketEventArgs(item, structEntries.Item2, _mainWindow.LogView); } catch (Exception exc) { _mainWindow.LogView.WriteLine($"[EXCEPTION] Thrown for {item.Message} - {item.Name}: {exc}"); args = new PacketEventArgs(item, null, _mainWindow.LogView); } } } else { args = new PacketEventArgs(item, null, _mainWindow.LogView); } if (args != null) { provider.ExecuteScripts(null, args); } }
public CSharpPlugin(ScriptPluginMeta pluginMeta, IDependencyContainer container, ScriptingProvider provider, CSharpScriptContext context) : base(pluginMeta, container, provider, context) { }
public Main() { _instance = this; this.FontGenerator = new Endogine.Text.FontGenerator(); Endogine.Text.FontGenerator fg = this.FontGenerator; fg.UseStyleTemplate("Test1"); fg.FontSize = 20; fg.DefinedCharacters = Endogine.Text.FontGenerator.GetCharSet(Endogine.Text.FontGenerator.CharSet.Default, false, false); this.Score = new Score(); this.Score.FontGenerator = fg; this.Score.Value = 0; this.Score.Loc = new EPointF(30, 30); // Endogine.Forms.Label lbl = new Endogine.Forms.Label(); // lbl.FontGenerator = fg; // lbl.Text = "AbrakadagvAsk49Å"; // lbl.Loc = new EPointF(100,100); this._scripter = ScriptingProvider.CreateScripter("boo"); Hashtable htScripts = new Hashtable(); htScripts.Add("Test", Endogine.Files.FileReadWrite.Read(Endogine.AppSettings.Instance.FindFile("test.boo"))); this._interactorClassNames = new ArrayList(); this._interactorClassNames.Add("Test"); this._scripter.CompileMultiple(htScripts); //Hashtable htKeys = new Hashtable(); //Endogine.KeysSteering _keys = new KeysSteering(htKeys); EH.Instance.KeyEvent += new KeyEventHandler(Instance_KeyEvent); Node tracks = new Node(); string sFile = "Muppet_Show"; sFile = "Flourish"; float fSpeed = 1f; switch (sFile) { case "Flourish": tracks.GetOrCreate("Drums.Interactor").Text = "X"; tracks.GetOrCreate("Drums.LocSetter").Text = "Default"; tracks.GetOrCreate("Kalimba.Interactor").Text = "Shake"; tracks.GetOrCreate("Kalimba.LocSetter").Text = "Swirl"; tracks.GetOrCreate("Piano.Interactor").Text = "Default"; sFile = @"C:\WINDOWS\Media\" + sFile; fSpeed = 0.8f; break; case "Muppet_Show": tracks.GetOrCreate("HONKY TONK PIAN.Interactor").Text = "X"; tracks.GetOrCreate("HONKY TONK PIAN.LocSetter").Text = "Default"; tracks.GetOrCreate("SAX.Interactor").Text = "Shake"; tracks.GetOrCreate("SAX.LocSetter").Text = "Swirl"; tracks.GetOrCreate("TUBA.Interactor").Text = "Default"; break; } this._factory = new InteractorFactory(tracks); this._factory.ReadAheadMsecs = this._readAheadMsecs; sFile = Endogine.AppSettings.Instance.FindFile(sFile + ".mid"); //sFile = @"C:\WINDOWS\Media\Flourish.MID"; //ONESTOP MidiFileReader reader = new MidiFileReader(sFile); OutputDevice output = new OutputDevice(0); output.Open(0); this._sequencer = new SequencerBase(null, output); this._sequencer.Sequence = reader.Sequence; this._sequencer.PlaybackSpeed = fSpeed; this._sequencer.Start(); // this._sequencer.Tempo = 40; Endogine.Midi.Devices.EmptyMidiSender midiSender = new Endogine.Midi.Devices.EmptyMidiSender(); //ScreenOutputDevice midiSender = new ScreenOutputDevice(this.progressBar1); this._sequencerPre = new SequencerBase(null, midiSender); this._sequencerPre.Sequence = reader.Sequence; TrackPlayer tp; for (int i = 0; i < tracks.ChildNodes.Count; i++) { tp = this._sequencerPre.Player.GetTrackPlayer(tracks[i].Name); //Drums tp.TrackMessage += new Endogine.Midi.TrackPlayer.TrackMessageDelegate(tp_TrackMessage); } this._sequencerPre.Start(); this._sequencerPre.Position = (int)(this._sequencer.PlaybackTempo * this._readAheadMsecs / 1000 * 6); //PlaybackTempo this._sequencerPre.PlaybackSpeed = this._sequencer.PlaybackSpeed; this._sequencerPre.Tempo = this._sequencer.Tempo; }
public static async Task <int> MainApp(string[] args) { var parser = new ConfigurationParser(); var dependencyResolver = new DefaultDependencyResolver(); Settings settings; const string SettingsFilename = "settings.json"; try { string contents = File.ReadAllText(SettingsFilename); settings = JsonConvert.DeserializeObject <Settings>(contents); } catch (Exception ex) { switch (ex) { case FileNotFoundException fex: System.Console.WriteLine($"{SettingsFilename} could not be found."); break; case UnauthorizedAccessException aux: System.Console.WriteLine($"Access to {SettingsFilename} was denied."); break; case JsonException jex: System.Console.WriteLine($"Could not understand {SettingsFilename}: {jex.Message}"); break; default: System.Console.WriteLine($"There was an error loading {SettingsFilename}: {ex.Message}"); break; } settings = new Settings { DatabaseType = DatabaseType.Memory, Listening = new ListenSettings { HttpPort = 5000, Host = "*", Scheme = Scheme.Http, WebSocketEnabled = true } }; } settings = parser.Parse(settings, args); if (settings.Install) { var installer = new Installer(); await installer.Run(null); return(-1); } ITransactionStorage storage = CreateStorageFromSettings(settings); try { System.Console.WriteLine("Initializing a connection to the database provider..."); await storage.OpenAsync(); } catch (System.Net.Sockets.SocketException ex) { System.Console.WriteLine(ex.Message); return(-1); } var httpServer = new HttpServer(settings.Listening.BuildUri(), storage); var location = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); var dir = Directory.CreateDirectory(Path.Combine(location, "Modules")); var modules = dir.GetFiles("*.dll", SearchOption.TopDirectoryOnly); var muteScriptRunner = new MuteScriptRunner(); muteScriptRunner.AddImplicitType("Console", typeof(IEchoService)); muteScriptRunner.AddImplicitType("IPaymentService", typeof(IPaymentService)); dependencyResolver.Register <IEchoService>(new EchoService(), null); dependencyResolver.Register <IPaymentService>(new MockPaymentService(), "mock"); foreach (var mod in modules) { try { using (var fs = mod.OpenRead()) { var asm = AssemblyLoadContext.Default.LoadFromStream(fs); var types = asm.ExportedTypes; } } catch (Exception) { } } ScriptingProvider provider = new ScriptingProvider(storage); provider.RegisterLanguageProvider("mute", muteScriptRunner); dependencyResolver.Register <IScriptRunner>(provider, null); var listeningThread = new Thread(async() => await httpServer.Start(provider)) { Name = "Web Server" }; listeningThread.Start(); TransactionProcessor processor = new TransactionProcessor(storage, provider, dependencyResolver); var cancelSource = new CancellationTokenSource(); _cancel = cancelSource.Token; System.Console.CancelKeyPress += async(sender, ev) => { await httpServer.Stop(); }; while (!cancelSource.IsCancellationRequested) { await processor.RunAsync(cancelSource.Token); } httpServer.Wait(); return(0); }