public PollState(Random rng, StreamnesiaConfig config) { _rng = rng; _cooldownDurationInSeconds = config.CooldownDurationInSeconds; _rapidfireDurationInSeconds = config.RapidfireDurationInSeconds; _votingDurationInSeconds = config.VotingDurationInSeconds; _rapidfireChancePrecent = config.RapidFireChancePercent; }
static async Task Main(string[] args) { StreamnesiaConfig config; if (File.Exists("streamnesia-config.json")) { config = JsonConvert.DeserializeObject <StreamnesiaConfig>(File.ReadAllText("streamnesia-config.json")); } else { config = new StreamnesiaConfig(); File.WriteAllText("streamnesia-config.json", JsonConvert.SerializeObject(config)); } IPayloadLoader payloadLoader = new LocalPayloadLoader(config); var payloads = await payloadLoader.GetPayloadsAsync(); _ = CommandQueue.StartCommandProcessingAsync(CancellationToken.None); if (args.Length == 2 && args[0] == "--chaos" && uint.TryParse(args[1], out var wait)) { await RunChaosModAsync(payloads, wait); } else if (args.Any() && args[0] == "--bot") { var bot = new Bot(); bot.OnCommandSelected = index => { if (index > 22 || index < 0) { return; } var p = payloads.ElementAt(index); CommandQueue.AddPayload(p); }; bot.OnMessageSent = async msg => { await Amnesia.DisplayTextAsync(msg); }; bot.OnDeathSet = msg => { Amnesia.SetDeathHintTextAsync(msg); }; } else if (args.Length == 2 && args[0] == "--run") { CommandQueue.AddPayload(payloads.First(p => p.Name.Contains(args[1]))); } for (var i = 0; i < payloads.Count(); i++) { var p = payloads.ElementAt(i); Console.WriteLine($"{i} - {p.Name}"); } await Task.Delay(-1); }
private StreamnesiaConfig GetStreamnesiaConfig() { if (!File.Exists(StreamnesiaConfigFile)) { var config = new StreamnesiaConfig(); File.WriteAllText(StreamnesiaConfigFile, JsonConvert.SerializeObject(config, Formatting.Indented)); return(config); } return(JsonConvert.DeserializeObject <StreamnesiaConfig>(File.ReadAllText(StreamnesiaConfigFile))); }
public StreamnesiaHub( IHubContext <UpdateHub> hub, ICommandPoll poll, CommandQueue cmdQueue, IPayloadLoader payloadLoader, Bot bot, Random rng, PollState pollState, StreamnesiaConfig config, IServerLogger logger ) { _hub = hub; _poll = poll; _cmdQueue = cmdQueue; _payloadLoader = payloadLoader; _bot = bot; _rng = rng; _pollState = pollState; _logger = logger; _canQueryPoll = true; _bot.OnVoted = OnUserVoted; _bot.OnDeathSet = text => { if (config.AllowDeathMessages) { Amnesia.SetDeathHintTextAsync(text); } }; _bot.OnMessageSent = text => { if (config.AllowOnScreenMessages) { Amnesia.DisplayTextAsync(text); } }; _ = _cmdQueue.StartCommandProcessingAsync(CancellationToken.None); _ = StartLoop(); }