public UserActionProvider(IFacebookClientProvider facebookClientProvider, IPlayerReadModel playerReadModel, IPlayerSession playerSession, ICommandSender bus)
 {
     _facebookClientProvider = facebookClientProvider;
     _playerReadModel = playerReadModel;
     _playerSession = playerSession;
     _bus = bus;
 }
 public static IEnumerable<object> Receptors(ICommandSender service)
 {
     var flow = new DomainSender(service);
     yield return new ReplicationReceptor(flow);
     yield return new RegistrationReceptor(flow);
     // more senders go here
 }
 public static IEnumerable<object> Ports(ICommandSender service)
 {
     var flow = new DomainSender(service);
     yield return new SecurityUserAggregateReplication(flow);
     yield return new RegistrationPort(flow);
     // more senders go here
 }
 public CommandQuit(GameWorld world, ICommandSender sender)
     : base(world, sender)
 {
     Name = "quit";
     Aliases.Add("exit");
     RequiredPermission = CommandPermission.Admin;
 }
 public Command(GameWorld world, ICommandSender sender)
 {
     Aliases = new List<string>();
     RequiredPermission = CommandPermission.User;
     World = world;
     Sender = sender;
 }
 public static IEnumerable<Func<CancellationToken, Task>> Tasks(ICommandSender service, IDocumentStore docs,
     bool isTest)
 {
     var flow = new DomainSender(service);
     // more tasks go here
     yield break;
 }
Example #7
0
 public AccountController(IFormsAuthentication formsAuthentication, 
     IUserRepository users, ICommandSender cmds)
 {
     _formsAuthentication = formsAuthentication;
     _users = users;
     _cmds = cmds;
 }
Example #8
0
 public LoansController(ICommandSender command)
 {
     _command = command;
     //TODO : Need to fix the denendency issue with the ILoansViewRepository!!
     var connection = ConfigurationManager.AppSettings["MongoDBconnection"];
     MongoContextProvider contextProvider = new MongoContextProvider(connection, "LoansViewRepository");
     _loansViewRepository = new LoansViewRepository(contextProvider);
 }
        public void Setup()
        {
            _session = Substitute.For<IPlayerSession>();
            _bus = Substitute.For<ICommandSender>();
            _playerReadModel = Substitute.For<IPlayerReadModel>();

            _target = new NativeUserActions(_session, _bus, _playerReadModel);
        }
 public FileDepositModule(ICommandSender sender)
 {
     Get["/deposit"] = _ =>
                    {
                        sender.Send(new FileDeposit());
                        return "File Deposit Made";
                    };
 }
 public CommandDie(GameWorld world, ICommandSender sender)
     : base(world, sender)
 {
     Name = "die";
     Aliases.Add("suicide");
     Description = "Kill yourself.";
     Usage = "die";
     Hidden = true;
 }
        public override ICommand Create(ICommandSender sender, string[] args)
        {
            if (sender is Entity)
            {
                return new CommandDie(World, sender);
            }

            throw new UsageException();
        }
 public GestureToCommandAdapter(string GestureFilePath,ICommandSender sender, params IGestureDetector[] detectors)
 {
     _commandSender = sender;
     _gestureDetectors = detectors;
     _gestureToCommandMap = new Dictionary<string, IList<XbmcCommand>>();
     foreach(var detector in _gestureDetectors)
         detector.GestureDetected += OnGestureRecognized;
     LoadAndRegisterGestures(GestureFilePath);
 }
        public CheckInPageViewModel(IReadModelFacade readModel, ICommandSender commandSender)
        {
            _readModel = readModel;
            _commandSender = commandSender;

            this.SaveCommand = new RelayCommand(ExecuteSave);

            Messenger.Default.Register<Guid>(this, "RefreshPage", RefreshPage);
        }
Example #15
0
 public CategoryController(
     ICommandSender commandSender,
     IGetAvailableCategoriesQueryService getAvailableCategoriesQueryService,
     IGetAvailableCategoryByIdQueryService getAvailableCategoryByIdQueryService)
 {
     _commandSender = commandSender;
     _getAvailableCategoriesQueryService = getAvailableCategoriesQueryService;
     _getAvailableCategoryByIdQueryService = getAvailableCategoryByIdQueryService;
 }
Example #16
0
 public UploadPhoto(Guid id, Guid user, Stream file, string filename, string contenttype, Privacy privacy, ICommandSender bus)
 {
     Id = id;
     UserId = user;
     File = file;
     Filename = filename;
     ContentType = contenttype;
     Privacy = privacy;
     Bus = bus;
 }
        public TransactionController(ILogger<TransactionController> logger,
                                        IOptions<AppConfig> optionsAccessor,
                                        ICommandSender commandSender,
                                        IReadModelFacade readmodel)
        {
            _logger = logger;
            _optionsAccessor = optionsAccessor.Value;
            _readmodel = readmodel;
            _commandSender = commandSender;

            string conn = _optionsAccessor.MONGOLAB_URI;
        }
 public async Task SendMissedMessages(ICommandSender sender, SayPlace place, string target, int accountID, int maxCount = OfflineMessageResendCount)
 {
     using (var db = new ZkDataContext()) {
         var acc = await db.Accounts.FindAsync(accountID);
         await
             db.LobbyChatHistories.Where(x => x.Target == target && x.SayPlace == place && x.Time >= acc.LastLogout)
                 .OrderByDescending(x => x.Time)
                 .Take(maxCount)
                 .OrderBy(x => x.Time)
                 .ForEachAsync(async (chatHistory) => { await sender.SendCommand(chatHistory.ToSay()); });
     }
 }
 protected void ExamineInjury(ICommandSender examiner)
 {
     if (!Alive)
     {
         examiner.SendLine();
         examiner.SendLine("{0}'s dead.", Pronoun.FirstCharToUpper());
     }
     else if (Hp < Attributes.MaxHp / 2)
     {
         examiner.SendLine();
         examiner.SendLine("{0} looks injured.", Pronoun.FirstCharToUpper());
     }
 }
        public RepositoryListViewModel(
            ImportRepositoryCommand importRepositoryCommand,
            Func<RepositoryListDto, RepositoryViewModel> repositoryFactory,
            ICommandSender commandSender,
            IGithubReadModel readModel)
        {
            _importRepositoryCommand = importRepositoryCommand;
            _repositoryFactory = repositoryFactory;
            _commandSender = commandSender;
            _readModel = readModel;
            _repositories = new ObservableCollection<RepositoryViewModel>();

            _importRepositoryCommand.RepositoryImported += RepositoryImportedEventHandler;

            Initialize();
        }
 public async Task SendMissedMessages(ICommandSender sender, SayPlace place, string target, int accountID, int maxCount = OfflineMessageResendCount)
 {
     using (var db = new ZkDataContext()) {
         var acc = await db.Accounts.FindAsync(accountID);
         await
             db.LobbyChatHistories.Where(x => x.Target == target && x.SayPlace == place && x.Time >= acc.LastLogout)
                 .OrderByDescending(x => x.Time)
                 .Take(maxCount)
                 .OrderBy(x => x.Time)
                 .ForEachAsync(async (chatHistory) => { await sender.SendCommand(chatHistory.ToSay()); });
         
         if (place == SayPlace.User) { // don't keep PMs longer than needed
             db.LobbyChatHistories.DeleteAllOnSubmit(db.LobbyChatHistories.Where(x => x.Target == target && x.SayPlace == SayPlace.User).ToList());
             db.SaveChanges();
         }
     }
 }
Example #22
0
        /// <summary>
        ///  Enables message queuing.
        /// </summary>
        /// <param name="configuration">The <see cref="ProcessorConfiguration"/>.</param>
        /// <param name="degreeOfParallelism">The maximum degree of parallelism.</param>
        /// <param name="sender">The <see cref="ICommandSender"/> used to send commands.</param>
        /// <param name="receiver">The <see cref="ICommandReceiver"/> used to receive commands.</param>
        public static void EnableMessageQueuing(this ProcessorConfiguration configuration, int degreeOfParallelism, ICommandSender sender, ICommandReceiver receiver)
        {
            if (configuration == null)
            {
                throw Error.ArgumentNull("configuration");
            }

            var innerWorker = configuration.Services.GetCommandWorker();
            configuration.Services.Replace(typeof(ICommandWorker), new CommandQueueWorker(innerWorker));

            configuration.Services.Replace(typeof(ICommandSender), sender);
            configuration.Services.Replace(typeof(ICommandReceiver), receiver);
            configuration.RegisterForDispose(sender as IDisposable);
            if (!object.ReferenceEquals(sender, receiver))
            {
                configuration.RegisterForDispose(receiver as IDisposable);
            }

            Action<ProcessorConfiguration> defaultInitializer = configuration.Initializer;

            configuration.Initializer = originalConfig =>
            {
                MessageProcessor processor = null;
                try
                {
                    CommandHandlerSettings settings = new CommandHandlerSettings(originalConfig);
                    settings.Services.Replace(typeof(ICommandWorker), innerWorker);
                    var config = ProcessorConfiguration.ApplyHandlerSettings(settings, originalConfig);
                    config.Initializer = defaultInitializer;
                    processor = new MessageProcessor(config);
                    var commandReceiver = originalConfig.Services.GetCommandReceiver();
                    originalConfig.CommandBroker = new CommandRunner(processor, commandReceiver, degreeOfParallelism);
                    originalConfig.RegisterForDispose(processor);
                    processor = null;
                }
                finally
                {
                    if (processor != null)
                    {
                        processor.Dispose();
                    }
                }

                defaultInitializer(originalConfig);
            };
        }
 public void RunCommand(string command, ICommandSender sender)
 {
     try
     {
         ICommand commandObj = Parser.Parse(command, sender);
         commandObj.Execute();
     }
     catch (CommandNotFoundException)
     {
         sender.SendLine("Invalid command.");
     }
     catch (UsageException)
     {
         sender.SendLine("Invalid usage.");
     }
     catch (InsufficientPermissionException)
     {
         sender.SendLine("Invalid permissions.");
     }
 }
        public Task SendMissedMessagesAsync(ICommandSender sender,
            SayPlace place,
            string target,
            int accountID,
            int maxCount = MessageResendCount)
        {
            return Task.Run(async () =>
            {
                await sendHistorySemaphore.WaitAsync();
                try
                {
                    using (var db = new ZkDataContext())
                    {
                        var acc = db.Accounts.Find(accountID);
                        foreach (var entry in
                            db.LobbyChatHistories.Where(x => (x.Target == target) && (x.SayPlace == place) && (x.Time >= acc.LastLogout))
                                .OrderByDescending(x => x.Time)
                                .Take(maxCount)
                                .OrderBy(x => x.Time)) await sender.SendCommand(entry.ToSay());

                        if (place == SayPlace.User)
                        {
                            // don't keep PMs longer than needed
                            db.LobbyChatHistories.DeleteAllOnSubmit(
                                db.LobbyChatHistories.Where(x => (x.Target == target) && (x.SayPlace == SayPlace.User)).ToList());
                            db.SaveChanges();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Trace.TraceError("Error sending chat history: {0}", ex);
                }
                finally
                {
                    sendHistorySemaphore.Release();
                }
            });
        }
        public ICommand Parse(string command, ICommandSender sender)
        {
            if (command == null)
                return null;

            command = command.Trim();
            string[] args = command.Split(' ');
            string commandName = args[0];

            ICommandFactory commandFactory = GetCommandByName(commandName);

            if (commandFactory != null)
                return commandFactory.Create(sender, args);

            List<Command> factoriesFound = GetCommandsByAlias(commandName);

            if (factoriesFound.Count == 1)
                return factoriesFound[0].Create(sender, args);

            if (factoriesFound.Count == 0)
                throw new CommandNotFoundException(commandName);
            else
                throw new SharedAliasException(commandName);
        }
 public void Examine(ICommandSender examiner)
 {
     examiner.SendLine(RantEngine.RunPattern("You are on \\a {0} tile.", Adjective));
 }
Example #27
0
        public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            Player player = Player.Get(((PlayerCommandSender)sender).SenderId);

            if ((player.Team != Team.MTF && player.Team != Team.CHI) ||
                !TrackingAndMethods.PlayersWithSubclasses.ContainsKey(player) ||
                !TrackingAndMethods.PlayersWithSubclasses[player].Abilities.Contains(AbilityType.BackupCommand))
            {
                Log.Debug($"Player {player.Nickname} could not use the backup command", Subclass.Instance.Config.Debug);
                response = "";
                return(true);
            }
            SubClass subClass = TrackingAndMethods.PlayersWithSubclasses[player];

            if (TrackingAndMethods.OnCooldown(player, AbilityType.BackupCommand, subClass))
            {
                Log.Debug($"Player {player.Nickname} failed to use the backup command", Subclass.Instance.Config.Debug);
                TrackingAndMethods.DisplayCooldown(player, AbilityType.BackupCommand, subClass, "backup", Time.time);
                response = "";
                return(true);
            }

            if (!TrackingAndMethods.CanUseAbility(player, AbilityType.BackupCommand, subClass))
            {
                TrackingAndMethods.DisplayCantUseAbility(player, AbilityType.BackupCommand, subClass, "backup");
                response = "";
                return(true);
            }

            int min = subClass.IntOptions.ContainsKey("BackupMinSpawn") ? subClass.IntOptions["BackupMinSpawn"] : 3;
            int max = subClass.IntOptions.ContainsKey("BackupMaxSpawn") ? subClass.IntOptions["BackupMaxSpawn"] : 7;

            List <Player> spectators = Player.List.Where(p => p.Role == RoleType.Spectator).ToList();

            if (spectators.Count == 0)
            {
                player.Broadcast(2, Subclass.Instance.Config.NoAvailableSpectators);
                response = "";
                return(true);
            }

            TrackingAndMethods.UseAbility(player, AbilityType.BackupCommand, subClass);
            TrackingAndMethods.AddCooldown(player, AbilityType.BackupCommand);

            int spawns = Mathf.Clamp((int)(rnd.NextDouble() * ((max - min) + 1)) + min, 0, spectators.Count);

            bool isMTF = player.Team == Team.MTF;

            int commanders  = 1;
            int lieutenants = 0;
            int cadets      = 0;

            if (isMTF)
            {
                lieutenants = Mathf.Clamp(spawns - commanders, 0, 3);
                cadets      = spawns - lieutenants - commanders;
            }

            for (int i = 0; i < spawns; i++)
            {
                int    index = rnd.Next(spectators.Count);
                Player p     = spectators[index];
                spectators.RemoveAt(index);
                if (!isMTF)
                {
                    p.SetRole(RoleType.ChaosInsurgency);
                }
                else
                {
                    if (commanders > 0)
                    {
                        p.SetRole(RoleType.NtfCommander);
                        commanders--;
                    }
                    else if (lieutenants > 0)
                    {
                        p.SetRole(RoleType.NtfLieutenant);
                        lieutenants--;
                    }
                    else
                    {
                        p.SetRole(RoleType.NtfCadet);
                    }
                }
            }
            response = "";
            return(true);
        }
Example #28
0
 public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response)
 {
     Updater.run = true;
     response    = "Updater launched, check server console for details";
     return(true);
 }
Example #29
0
 public NotesController(ICommandSender commandSender, INoteStore store)
 {
     this.commandSender = commandSender;
     this.store         = store;
 }
 public InventoryController(ICommandSender bus, IReadModelFacade readModel)
 {
     _bus       = bus;
     _readModel = readModel;
 }
Example #31
0
        /// <summary>
        ///  Enables message queuing.
        /// </summary>
        /// <param name="configuration">The <see cref="ProcessorConfiguration"/>.</param>
        /// <param name="degreeOfParallelism">The maximum degree of parallelism.</param>
        /// <param name="sender">The <see cref="ICommandSender"/> used to send commands.</param>
        /// <param name="receiver">The <see cref="ICommandReceiver"/> used to receive commands.</param>
        public static void EnableMessageQueuing(this ProcessorConfiguration configuration, int degreeOfParallelism, ICommandSender sender, ICommandReceiver receiver)
        {
            if (configuration == null)
            {
                throw Error.ArgumentNull("configuration");
            }

            var innerWorker = configuration.Services.GetCommandWorker();

            configuration.Services.Replace(typeof(ICommandWorker), new CommandQueueWorker(innerWorker));

            configuration.Services.Replace(typeof(ICommandSender), sender);
            configuration.Services.Replace(typeof(ICommandReceiver), receiver);
            configuration.RegisterForDispose(sender as IDisposable);
            if (!object.ReferenceEquals(sender, receiver))
            {
                configuration.RegisterForDispose(receiver as IDisposable);
            }

            Action <ProcessorConfiguration> defaultInitializer = configuration.Initializer;

            configuration.Initializer = originalConfig =>
            {
                MessageProcessor processor = null;
                try
                {
                    CommandHandlerSettings settings = new CommandHandlerSettings(originalConfig);
                    settings.Services.Replace(typeof(ICommandWorker), innerWorker);
                    var config = ProcessorConfiguration.ApplyHandlerSettings(settings, originalConfig);
                    config.Initializer = defaultInitializer;
                    processor          = new MessageProcessor(config);
                    var commandReceiver = originalConfig.Services.GetCommandReceiver();
                    originalConfig.CommandBroker = new CommandRunner(processor, commandReceiver, degreeOfParallelism);
                    originalConfig.RegisterForDispose(processor);
                    processor = null;
                }
                finally
                {
                    if (processor != null)
                    {
                        processor.Dispose();
                    }
                }

                defaultInitializer(originalConfig);
            };
        }
Example #32
0
        protected override bool ExecuteParent(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            EventHandlers.LogCommandUsed((CommandSender)sender, EventHandlers.FormatArguments(arguments, 0));
            if (!((CommandSender)sender).CheckPermission("at.dummy"))
            {
                response = "You do not have permission to use this command";
                return(false);
            }

            Player Sender = Player.Get(((CommandSender)sender).ReferenceHub);

            if (arguments.Count < 1)
            {
                response = "Usage:\ndummy ((player id / name) or (all / *)) (RoleType) (x value) (y value) (z value)" +
                           "\ndummy clear (player id / name) (minimum index) (maximum index)" +
                           "\ndummy clearall" +
                           "\ndummy count (player id / name) ";
                return(false);
            }

            switch (arguments.At(0))
            {
            case "clear":
                if (arguments.Count != 4)
                {
                    response = "Usage: dummy clear (player id / name) (minimum index) (maximum index)\nNote: Minimum < Maximum, you can remove from a range of dummies a user spawns";
                    return(false);
                }

                Player Ply = Player.Get(arguments.At(1));
                if (Ply == null)
                {
                    response = $"Player not found: {arguments.At(1)}";
                    return(false);
                }

                if (!int.TryParse(arguments.At(2), out int Min) && Min < 0)
                {
                    response = $"Invalid value for minimum index: {arguments.At(2)}";
                    return(false);
                }

                if (!int.TryParse(arguments.At(3), out int Max) && Max < 0)
                {
                    response = $"Invalid value for maximum index: {arguments.At(3)}";
                    return(false);
                }

                if (Max < Min)
                {
                    response = $"{Max} is not greater than {Min}";
                    return(false);
                }

                if (!Plugin.DumHubs.TryGetValue(Ply, out List <GameObject> objs))
                {
                    response = $"{Ply.Nickname} has not spawned in any dummies in";
                    return(false);
                }

                if (Min > objs.Count)
                {
                    response = $"{Min} (minimum) is higher than the number of dummies {Ply.Nickname} spawned! (Which is {objs.Count})";
                    return(false);
                }

                if (Max > objs.Count)
                {
                    response = $"{Max} (maximum) is higher than the number of dummies {Ply.Nickname} spawned! (Which is {objs.Count})";
                    return(false);
                }

                Min = Min == 0 ? 0 : Min - 1;
                Max = Max == 0 ? 0 : Max - 1;

                for (int i = Min; i <= Max; i++)
                {
                    UnityEngine.Object.Destroy(objs.ElementAt(i));
                    objs[i] = null;
                }
                objs.RemoveAll(r => r == null);

                response = $"All dummies from {Min + 1} to {Max + 1} have been cleared from Player {Ply.Nickname}";
                return(true);

            case "clearall":
                if (arguments.Count != 1)
                {
                    response = "Usage: dummy clearall";
                    return(false);
                }

                foreach (KeyValuePair <Player, List <GameObject> > Dummy in Plugin.DumHubs)
                {
                    foreach (GameObject Dum in Dummy.Value)
                    {
                        UnityEngine.Object.Destroy(Dum);
                    }
                    Dummy.Value.Clear();
                }

                Plugin.DumHubs.Clear();
                response = $"All spawned dummies have now been removed";
                return(true);

            case "count":
                if (arguments.Count != 2)
                {
                    response = "Usage: dummy count (player id / name)";
                    return(false);
                }

                Player Plyr = Player.Get(arguments.At(1));
                if (Plyr == null)
                {
                    response = $"Player not found: {arguments.At(1)}";
                    return(false);
                }

                if (!Plugin.DumHubs.TryGetValue(Plyr, out List <GameObject> obj) || obj.Count == 0)
                {
                    response = $"{Plyr.Nickname} has not spawned in any dummies in";
                    return(false);
                }

                response = $"{Plyr.Nickname} has spawned in {(obj.Count != 1 ? $"{obj.Count} dummies" : $"{obj.Count} dummy")}";
                return(true);
Example #33
0
        public string[] OnCall(ICommandSender sender, string[] args)
        {
            AdminToolbox.AddMissingPlayerVariables();
            Server server = PluginManager.Manager.Server;

            if (args.Length > 0)
            {
                if (args[0].ToLower() == "all" || args[0].ToLower() == "*")
                {
                    if (args.Length > 1)
                    {
                        if (bool.TryParse(args[1], out bool j))
                        {
                            int playerNum = 0;
                            foreach (Player pl in server.GetPlayers())
                            {
                                AdminToolbox.ATPlayerDict[pl.SteamId].dmgOff = j;
                                playerNum++;
                            }
                            return(new string[] { "Set " + playerNum + " player's \"No Dmg\" to " + j });
                        }
                        else
                        {
                            return new string[] { "Not a valid bool!" }
                        };
                    }
                    else
                    {
                        foreach (Player pl in server.GetPlayers())
                        {
                            AdminToolbox.ATPlayerDict[pl.SteamId].dmgOff = !AdminToolbox.ATPlayerDict[pl.SteamId].dmgOff;
                        }
                        return(new string[] { "Toggled all player's \"No Dmg\"" });
                    }
                }
                else if (args[0].ToLower() == "list" || args[0].ToLower() == "get")
                {
                    string        str          = "\nPlayers with \"No Dmg\" enabled: \n";
                    List <string> myPlayerList = new List <string>();
                    foreach (Player pl in server.GetPlayers())
                    {
                        if (AdminToolbox.ATPlayerDict[pl.SteamId].dmgOff)
                        {
                            myPlayerList.Add(pl.Name);
                        }
                    }
                    if (myPlayerList.Count > 0)
                    {
                        myPlayerList.Sort();
                        foreach (var item in myPlayerList)
                        {
                            str += "\n - " + item;
                        }
                    }
                    else
                    {
                        str = "\nNo players with \"No Dmg\" enabled!";
                    }
                    return(new string[] { str });
                }
                Player myPlayer = API.GetPlayerFromString.GetPlayer(args[0]);
                if (myPlayer == null)
                {
                    return(new string[] { "Couldn't get player: " + args[0] });;
                }
                if (args.Length > 1)
                {
                    bool changedValue = false;
                    if (args.Length > 2)
                    {
                        if (args[2].ToLower() == "godmode")
                        {
                            changedValue = true;
                        }
                    }
                    if (args[1].ToLower() == "on" || args[1].ToLower() == "true")
                    {
                        AdminToolbox.ATPlayerDict[myPlayer.SteamId].dmgOff = true;
                    }
                    else if (args[1].ToLower() == "off" || args[1].ToLower() == "false")
                    {
                        AdminToolbox.ATPlayerDict[myPlayer.SteamId].dmgOff = false;
                    }
                    if (changedValue)
                    {
                        AdminToolbox.ATPlayerDict[myPlayer.SteamId].godMode = AdminToolbox.ATPlayerDict[myPlayer.SteamId].dmgOff;
                        return(new string[] { myPlayer.Name + " No Dmg: " + AdminToolbox.ATPlayerDict[myPlayer.SteamId].dmgOff, myPlayer.Name + " Godmode: " + AdminToolbox.ATPlayerDict[myPlayer.SteamId].godMode });
                    }
                    return(new string[] { myPlayer.Name + " No Dmg: " + AdminToolbox.ATPlayerDict[myPlayer.SteamId].dmgOff });
                }
                else
                {
                    AdminToolbox.ATPlayerDict[myPlayer.SteamId].dmgOff = !AdminToolbox.ATPlayerDict[myPlayer.SteamId].dmgOff;
                    return(new string[] { myPlayer.Name + " No Dmg: " + AdminToolbox.ATPlayerDict[myPlayer.SteamId].dmgOff });
                }
            }
            else
            {
                return new string[] { GetUsage() }
            };
        }
    }
Example #34
0
 public string[] OnCall(ICommandSender sender, string[] args)
 {
     PlayerXP.isToggled = !PlayerXP.isToggled;
     return(new string[] { $"PlayerXP has been toggled {(PlayerXP.isToggled ? "on" : "off")}." });
 }
        private async Task Handle(ConfirmationSavedEvent evt, ICommandSender sender)
        {
            var hash     = evt.TransactionHash;
            var clientId = evt.ClientId;

            var balanceChangeTransaction = await _balanceChangeTransactionsRepository.GetAsync(hash);

            var operation = await _internalOperationsRepository.GetAsync(hash);

            var tx = balanceChangeTransaction.First(x => x.ClientId == clientId);

            ChaosKitty.Meow();

            if (operation != null && operation.CommandType == BitCoinCommands.Transfer)
            {
                foreach (var id in operation.OperationIds)
                {
                    if (string.IsNullOrWhiteSpace(id))
                    {
                        continue;
                    }

                    sender.SendCommand(new ProcessTransferCommand
                    {
                        TransferId = id
                    }, "transfer");
                }
            }
            else
            {
                if (tx.IsCashIn(tx.Multisig))
                {
                    var cashIns = tx.GetOperationSummary(tx.Multisig);
                    if (cashIns.Count > 1)
                    {
                        _log.WriteWarning(nameof(ConfirmationSavedEvent), evt, $"Multiple assets in a single transaction detected: {cashIns.ToJson()}");
                        // there should be only one asset in cash-in operation;
                        // code bellow with 'foreach' statement is kept for a while in case of obsolete request with multiple assets;
                    }

                    var skipBtc = (await _appGlobalSettingsRepositry.GetAsync()).BtcOperationsDisabled;

                    foreach (var cashIn in cashIns)
                    {
                        var asset = await GetAssetByBcnIdAsync(cashIn.Key);

                        ChaosKitty.Meow();

                        if (asset.Id == LykkeConstants.BitcoinAssetId && skipBtc)
                        {
                            sender.SendCommand(new SavePostponedCashInCommand
                            {
                                TransactionHash = tx.Hash
                            }, "cashin");
                        }
                        else
                        {
                            var sum = (cashIn.Value * Math.Pow(10, -asset.MultiplierPower)).TruncateDecimalPlaces(asset.Accuracy);

                            var cmd = new RegisterCashInOutCommand
                            {
                                Transaction = new Transaction {
                                    Hash = tx.Hash, ClientId = tx.ClientId, Multisig = tx.Multisig, IsSegwit = tx.IsSegwit
                                },
                                Asset = new Asset {
                                    Id = asset.Id, Accuracy = asset.Accuracy
                                },
                                Amount    = sum,
                                CommandId = Guid.NewGuid().ToString("N")
                            };

                            sender.SendCommand(cmd, "cashin");
                        }
                    }
                }
            }
        }
Example #36
0
        /// <inheritdoc />
        public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            if (!sender.CheckPermission("ca.fscp"))
            {
                response = "Insufficient permission. Required: ca.fscp";
                return(false);
            }

            response =
                "Syntax: scpa (scp number) (death type)\nDeath Types: tesla, dclass, scientist, mtf, chaos, decont";

            if (arguments.Count != 2)
            {
                return(false);
            }

            string scpNum = arguments.At(0);

            if (!int.TryParse(scpNum, out _))
            {
                return(false);
            }

            for (int i = 0; i <= scpNum.Length; i += 2)
            {
                scpNum = scpNum.Insert(i, " ");
            }

            string deathCause = string.Empty;

            switch (arguments.At(1))
            {
            case "t":
            case "tesla":
                deathCause = "Successfully Terminated by Automatic Security System";
                break;

            case "d":
            case "dclass":
                deathCause = "terminated by ClassD personnel";
                break;

            case "s":
            case "science":
            case "scientist":
                deathCause = "terminated by science personnel";
                break;

            case "c":
            case "chaos":
                deathCause = "terminated by ChaosInsurgency";
                break;

            case "m":
            case "mtf":
                Player dummy = Player.List.FirstOrDefault(player => player.Role.Team == Team.MTF);
                if (dummy == null)
                {
                    response = "There are currently no alive MTF to mimic the unit of.";
                    return(false);
                }

                if (!Respawning.NamingRules.UnitNamingRules.TryGetNamingRule(
                        Respawning.SpawnableTeamType.NineTailedFox,
                        out Respawning.NamingRules.UnitNamingRule unitNamingRule))
                {
                    deathCause = "Unknown";
                }
                else
                {
                    deathCause = "CONTAINEDSUCCESSFULLY CONTAINMENTUNIT " + unitNamingRule.GetCassieUnitName(dummy.UnitName);
                }
                break;

            case "decont":
                deathCause = "Lost in Decontamination Sequence";
                break;
            }

            if (string.IsNullOrEmpty(deathCause))
            {
                return(false);
            }

            Cassie.Message($"scp {scpNum} {deathCause}");
            response = "Playing announcement.";
            return(true);
        }
Example #37
0
        public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            throw new NotImplementedException();

            if (!sender.CheckPermission("ast.playermgm"))
            {
                response = "You can't use this command, you don't have \"ast.playermgm\" permission.";
                return(false);
            }
            if (arguments.Count < 1)
            {
                response = "Subcommands: clear (c), additem (ai), display(d)";
                return(true);
            }
            else if (arguments.At(0) == "clear" || arguments.At(0) == "c")
            {
                if (arguments.Count > 1)
                {
                    P Ply = P.Get(arguments.At(1));
                    if (Ply == null)
                    {
                        response = $"Player not found: {arguments.At(1)}";
                        return(false);
                    }
                    if (Ply.Role == RoleType.Spectator || Ply.Role == RoleType.None || Ply.Team == Team.SCP)
                    {
                        response = "You cannot clear the inventory of this player.";
                        return(false);
                    }
                    Ply.Inventory.Clear();
                    response = $"Succesfully cleared the inventory of {Ply.Nickname}";
                    return(true);
                }
                else
                {
                    response = $"Clears the inventory of a player. Usage: {Command} c <user>";
                    return(true);
                }
            }
            else if (arguments.At(0) == "additem" || arguments.At(0) == "ai")
            {
                if (arguments.Count > 1)
                {
                    P Ply = P.Get(arguments.At(1));
                    if (Ply == null)
                    {
                        response = $"Player not found: {arguments.At(1)}";
                        return(false);
                    }
                    if (arguments.Count > 2)
                    {
                    }
                    else
                    {
                        response = "";
                        return(true);
                    }
                }
                else
                {
                    response = $"Adds an item to the inventory of a player. Usage: {Command} ai <user> <item>";
                    return(true);
                }
            }
            else
            {
                response = "Invalid subcommand. Subcommands: ";
                return(false);
            }
        }
Example #38
0
 /// <summary>
 /// Checks a sender's permission.
 /// </summary>
 /// <param name="sender">The sender to be checked.</param>
 /// <param name="permission">The permission to be checked.</param>
 /// <returns>Returns a value indicating whether the user has the permission or not.</returns>
 public static bool CheckPermission(this ICommandSender sender, string permission) => CheckPermission(sender as CommandSender, permission);
Example #39
0
 public DomainSender(ICommandSender service)
 {
     _service = service;
 }
 protected AwaiterBase(ICommandSender commandSender)
 => _commandSender = commandSender;
Example #41
0
 protected override bool ExecuteParent(ArraySegment <string> arguments, ICommandSender sender, out string response)
 {
     response =
         "Please use a valid sub-command.\nEnable - enables the gamemode.\nDisable - disables the gamemode.";
     return(false);
 }
Example #42
0
 public TabController(ICommandSender commandSender)
 {
     _commandSender = commandSender;
 }
Example #43
0
        protected override bool ExecuteParent(ArraySegment<string> arguments, ICommandSender sender, out string response)
        {
            EventHandlers.LogCommandUsed((CommandSender)sender, EventHandlers.FormatArguments(arguments, 0));
            if (!((CommandSender)sender).CheckPermission("at.tp"))
            {
                response = "You do not have permission to use this command";
                return false;
            }

            if (arguments.Count < 1)
            {
                response = response = "\nUsage:\nposition ((player id / name) or (all / *)) (set) (x position) (y position) (z position)\nposition ((player id / name) or (all / *)) (get)\nposition ((player id / name) or (all / *))(add) (x, y, or z) (value)";
                return false;
            }

            switch (arguments.At(0))
            {
                case "*":
                case "all":
                    if (!Enum.TryParse(arguments.At(1), true, out PositionModifier Mod))
                    {
                        response = $"Invalid position modifier: {arguments.At(0)}";
                        return false;
                    }

                    switch (Mod)
                    {
                        case PositionModifier.Set:
                            if (arguments.Count != 5)
                            {
                                response = "Usage: position (all / *) (set) (x position) (y position) (z position)";
                                return false;
                            }
                            if (!float.TryParse(arguments.At(2), out float xval))
                            {
                                response = $"Invalid value for x position: {arguments.At(2)}";
                                return false;
                            }
                            if (!float.TryParse(arguments.At(3), out float yval))
                            {
                                response = $"Invalid value for x position: {arguments.At(3)}";
                                return false;
                            }
                            if (!float.TryParse(arguments.At(4), out float zval))
                            {
                                response = $"Invalid value for x position: {arguments.At(4)}";
                                return false;
                            }
                            if (Player.List.Count() == 0)
                            {
                                response = "There are no players currently online";
                                return true;
                            }
                            foreach (Player Ply in Player.List)
                            {
                                Ply.Position = new Vector3(xval, yval, zval);
                            }
                            response = $"All player's positions have been set to {xval} {yval} {zval}";
                            return true;
                        case PositionModifier.Get:
                            if (arguments.Count != 2)
                            {
                                response = "Usage: position (all / *) (get)";
                                return false;
                            }
                            StringBuilder PositionBuilder = StringBuilderPool.Shared.Rent();
                            if (Player.List.Count() == 0)
                            {
                                response = "There are no players currently online";
                                return true;
                            }
                            PositionBuilder.Append("\n");
                            foreach (Player Ply in Player.List)
                            {
                                PositionBuilder.Append(Ply.Nickname);
                                PositionBuilder.Append("'s (");
                                PositionBuilder.Append(Ply.Id);
                                PositionBuilder.Append(")");
                                PositionBuilder.Append(" position: ");
                                PositionBuilder.Append(Ply.Position.x);
                                PositionBuilder.Append(" ");
                                PositionBuilder.Append(Ply.Position.y);
                                PositionBuilder.Append(" ");
                                PositionBuilder.AppendLine(Ply.Position.z.ToString());
                            }
                            string Message = PositionBuilder.ToString();
                            StringBuilderPool.Shared.Return(PositionBuilder);
                            response = Message;
                            return true;
                        case PositionModifier.Add:
                            if (arguments.Count != 4)
                            {
                                response = "Usage: position (all / *) (add) (x, y, or z) (value)";
                                return false;
                            }
                            if (!Enum.TryParse(arguments.At(2), true, out VectorAxis Axis))
                            {
                                response = $"Invalid value for vector axis: {arguments.At(2)}";
                                return false;
                            }
                            if (!float.TryParse(arguments.At(3), out float val))
                            {
                                response = $"Invalid value for position: {arguments.At(3)}";
                                return false;
                            }
                            switch (Axis)
                            {
                                case VectorAxis.X:
                                    foreach (Player Ply in Player.List)
                                        Ply.Position = new Vector3(Ply.Position.x + val, Ply.Position.y, Ply.Position.z);

                                    response = $"Every player's x position has been added by {val}";
                                    return true;
                                case VectorAxis.Y:
                                    foreach (Player Ply in Player.List)
                                        Ply.Position = new Vector3(Ply.Position.x, Ply.Position.y + val, Ply.Position.z);

                                    response = $"Every player's y position has been added by {val}";
                                    return true;
                                case VectorAxis.Z:
                                    foreach (Player Ply in Player.List)
                                        Ply.Position = new Vector3(Ply.Position.x, Ply.Position.y, Ply.Position.z + val);

                                    response = $"Every player's z position has been added by {val}";
                                    return true;
                            }
                            break;
                        default:
                            response = "\nUsage:\nposition (all / *) (set) (x position) (y position) (z position)\nposition (all / *) (get)\nposition (all / *) (add) (x, y, or z) (value)";
                            return false;
                    }
                    break;
                default:
                    Player Pl = Player.Get(arguments.At(0));
                    if (Pl == null)
                    {
                        response = $"Player not found: {arguments.At(0)}";
                        return false;
                    }

                    if (!Enum.TryParse(arguments.At(1), true, out PositionModifier Modf))
                    {
                        response = $"Invalid position modifier: {arguments.At(1)}";
                        return false;
                    }

                    switch (Modf)
                    {
                        case PositionModifier.Set:
                            if (arguments.Count != 5)
                            {
                                response = "Usage: position (player id / name) (set) (x position) (y position) (z position)";
                                return false;
                            }
                            if (!float.TryParse(arguments.At(2), out float xval))
                            {
                                response = $"Invalid value for x position: {arguments.At(2)}";
                                return false;
                            }
                            if (!float.TryParse(arguments.At(3), out float yval))
                            {
                                response = $"Invalid value for x position: {arguments.At(3)}";
                                return false;
                            }
                            if (!float.TryParse(arguments.At(4), out float zval))
                            {
                                response = $"Invalid value for x position: {arguments.At(4)}";
                                return false;
                            }

                            Pl.Position = new Vector3(xval, yval, zval);
                            response = $"Player {Pl.Nickname}'s positions have been set to {xval} {yval} {zval}";
                            return true;
                        case PositionModifier.Get:
                            if (arguments.Count != 2)
                            {
                                response = "Usage: position (player id / name) (get)";
                                return false;
                            }

                            response = $"Player {Pl.Nickname}'s ({Pl.Id}) position is {Pl.Position.x} {Pl.Position.y} {Pl.Position.z}";
                            return true;
                        case PositionModifier.Add:
                            if (arguments.Count != 4)
                            {
                                response = "Usage: position (player id / name) (add) (x, y, or z) (value)";
                                return false;
                            }
                            if (!Enum.TryParse(arguments.At(2), true, out VectorAxis Axis))
                            {
                                response = $"Invalid value for vector axis: {arguments.At(2)}";
                                return false;
                            }
                            if (!float.TryParse(arguments.At(3), out float val))
                            {
                                response = $"Invalid value for position: {arguments.At(2)}";
                                return false;
                            }
                            switch (Axis)
                            {
                                case VectorAxis.X:
                                    Pl.Position = new Vector3(Pl.Position.x + val, Pl.Position.y, Pl.Position.z);
                                    response = $"Player {Pl.Nickname}'s x position has been added by {val}";
                                    return true;
                                case VectorAxis.Y:
                                    Pl.Position = new Vector3(Pl.Position.x, Pl.Position.y + val, Pl.Position.z);
                                    response = $"Player {Pl.Nickname}'s y position has been added by {val}";
                                    return true;
                                case VectorAxis.Z:
                                    Pl.Position = new Vector3(Pl.Position.x, Pl.Position.y, Pl.Position.z + val);
                                    response = $"Player {Pl.Nickname}'s z position has been added by {val}";
                                    return true;
                            }
                            break;
                        default:
                            response = "\nUsage:\nposition (player id / name) (set) (x position) (y position) (z position)\nposition (player id / name) (get)\nposition (player id / name) (add) (x, y, or z) (value)";
                            return false;
                    }
                    break;
            }
            response = "Something did not go right, the command should not reach this point";
            return false;
        }
 public EpisodeDataController(ICommandSender commandSender, IQuerySender querySender)
 {
     _commandSender = commandSender;
     _querySender   = querySender;
 }
 public VendorService(ICommandSender commandService, IVendorRepository vendorRepository, ICustomerCacheStorage customerCacheStorage)
 {
     _commandService       = commandService;
     _vendorRepository     = vendorRepository;
     _customerCacheStorage = customerCacheStorage;
 }
Example #46
0
        /// <inheritdoc/>
        public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            if (!sender.CheckPermission("uiu.spawn"))
            {
                response = "You don't have permission to execute this command. Required permission: uiu.spawn";
                return(false);
            }

            Player player = Player.Get((sender as PlayerCommandSender).ReferenceHub);

            switch (arguments.Count)
            {
            case 0:
            {
                if (IsUiu(player) && GetUIURole(player.Role) == UiuType.Leader)
                {
                    response = "You are already an UIU Leader.";
                    return(false);
                }

                SpawnPlayer(player, UiuType.Leader);
                response = "You are now a UIU Leader";
                return(true);
            }

            case 1:
            {
                if (!Enum.TryParse(arguments.At(0), false, out UiuType uiuType))
                {
                    response = $"{arguments.At(0)} cannot be parsed to any UiuType.";
                    return(false);
                }
                else
                {
                    SpawnPlayer(player, uiuType);

                    response = $"{player.Nickname} is now an UIU {uiuType}.";
                    return(true);
                }
            }

            case 2:
            {
                player = Player.Get(arguments.At(1));
                if (player == null)
                {
                    response = "Provided player is invalid. Please give player's id or nickname.";
                    return(false);
                }

                if (!Enum.TryParse(arguments.At(0), true, out UiuType uiuType))
                {
                    response = $"{arguments.At(0)} cannot be parsed to any UiuType.";
                    return(false);
                }
                else
                {
                    if (IsUiu(player) && GetUIURole(player.Role) == uiuType)
                    {
                        response = $"{player.Nickname} is already a UIU";
                        return(false);
                    }

                    SpawnPlayer(player, uiuType);

                    response = $"{player.Nickname} is now an UIU {uiuType}.";
                    return(true);
                }
            }

            default: response = "Invalid number of arguments."; return(false);
            }
        }
Example #47
0
 public HomeController(ICommandSender commandSender, IReadModelFacade readmodel)
 {
     _readmodel     = readmodel;
     _commandSender = commandSender;
 }
Example #48
0
 public string[] OnCall(ICommandSender sender, string[] args)
 {
     if (sender.IsPermitted(CommandAliases, out string[] denied))
Example #49
0
 // You are not required to override this method, as MCore has a default
 // sending message using the usage specified in the constructor
 protected override void SendUsageMessage(ICommandSender sender)
 {
     sender.SendMessage(ColorScheme.ERROR, "Usage!", ChatColor.DARK_RED + "That is not the correct usage? Use: " + this.info.Usage);
 }
Example #50
0
        public string[] OnCall(ICommandSender sender, string[] args)
        {
            Server server = PluginManager.Manager.Server;

            bool isPlayer()
            {
                if (sender is Player pl)
                {
                    if (!string.IsNullOrEmpty(pl.SteamId))
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }

            string ColoredBools(bool input)
            {
                if (isPlayer() && input)
                {
                    return("<color=green>" + input + "</color>");
                }
                else if (isPlayer() && !input)
                {
                    return("<color=red>" + input + "</color>");
                }
                else if (input)
                {
                    return(input.ToString() + " ");
                }
                else
                {
                    return(input.ToString());
                }
            }

            if (server.GetPlayers().Count > 0)
            {
                Player myPlayer = (args.Length > 0) ? GetPlayerFromString.GetPlayer(args[0]) : null;
                if (args.Length == 0)
                {
                    if (sender is Player sendingPlayer)
                    {
                        myPlayer = sendingPlayer;
                    }
                }
                if (myPlayer == null)
                {
                    return(new string[] { "Couldn't get player: " + args[0] });;
                }
                AdminToolbox.AddMissingPlayerVariables(new List <Player> {
                    myPlayer
                });
                AdminToolbox.AdminToolboxLogger.PlayerStatsFileManager(new List <Player> {
                    myPlayer
                }, LogHandlers.PlayerFile.Write);
                AdminToolbox.AdminToolboxPlayerSettings playerDict = (AdminToolbox.playerdict.ContainsKey(myPlayer.SteamId)) ? AdminToolbox.playerdict[myPlayer.SteamId] : new AdminToolbox.AdminToolboxPlayerSettings();
                int    remainingJailTime = ((int)playerDict.JailedToTime.Subtract(DateTime.Now).TotalSeconds >= 0) ? (int)playerDict.JailedToTime.Subtract(DateTime.Now).TotalSeconds : 0;
                string remoteAdmin       = "Player info: \n " +
                                           "\n Player: (" + myPlayer.PlayerId + ") " + myPlayer.Name +
                                           "\n - SteamID: " + myPlayer.SteamId + "   - IP: " + myPlayer.IpAddress.Replace("::ffff:", string.Empty) +
                                           "\n - Role: " + myPlayer.TeamRole.Role + "      - Health: " + myPlayer.GetHealth() +
                                           "\n - Server Rank: " + "<color=" + myPlayer.GetUserGroup().Color + ">" + myPlayer.GetRankName() + "</color>" +
                                           "\n - AdminToolbox Toggables: " +
                                           "\n     - Godmode: " + ColoredBools(playerDict.godMode) + "         - NoDmg: " + ColoredBools(playerDict.dmgOff) +
                                           "\n     - SpectatorOnly: " + ColoredBools(playerDict.spectatorOnly) + " - KeepSettings: " + ColoredBools(playerDict.keepSettings) +
                                           "\n     - BreakDoors: " + ColoredBools(playerDict.destroyDoor) + "      - PlayerLockDown: " + ColoredBools(playerDict.lockDown) +
                                           "\n     - InstantKill: " + ColoredBools(playerDict.instantKill) +
                                           "\n     - IsJailed: " + ColoredBools(playerDict.isJailed) + "        - Released In: " + remainingJailTime +
                                           "\n - Stats:" +
                                           "\n     - Kills: " + playerDict.Kills + "  - TeamKills: " + playerDict.TeamKills + "  - Deaths: " + playerDict.Deaths +
                                           "\n     - Rounds Played: " + playerDict.RoundsPlayed + "        - Playtime: " + (int)playerDict.minutesPlayed + " minutes" +
                                           "\n - Position:" +
                                           " - X:" + (int)myPlayer.GetPosition().x +
                                           "   Y:" + (int)myPlayer.GetPosition().y +
                                           "   Z:" + (int)myPlayer.GetPosition().z;
                string[] playerStrings = new string[]
                {
                    "\n Player: (" + myPlayer.PlayerId + ") " + myPlayer.Name,
                    " - SteamID: " + myPlayer.SteamId,
                    " - IP: " + myPlayer.IpAddress,
                    " - Server Rank: " + "<color=" + myPlayer.GetUserGroup().Color + ">" + myPlayer.GetRankName() + "</color>",
                    " - Role: " + myPlayer.TeamRole.Role,
                    " - Health: " + myPlayer.GetHealth(),
                    " - AdminToolbox Toggables: ",
                    "   - Godmode: " + ColoredBools(playerDict.godMode),
                    "   - NoDmg: " + ColoredBools(playerDict.dmgOff),
                    "   - SpectatorOnly: " + ColoredBools(playerDict.spectatorOnly),
                    "   - KeepSettings: " + ColoredBools(playerDict.keepSettings),
                    "   - BreakDoors: " + ColoredBools(playerDict.destroyDoor),
                    "   - PlayerLockDown: " + ColoredBools(playerDict.lockDown),
                    "   - InstantKill: " + ColoredBools(playerDict.instantKill),
                    "   - IsJailed: " + ColoredBools(playerDict.isJailed),
                    "   - Released In: " + remainingJailTime,
                    " - Stats:" +
                    "     - Kills: " + playerDict.Kills,
                    "     - TeamKills: " + playerDict.TeamKills,
                    "     - Deaths: " + playerDict.Deaths,
                    "     - Rounds Played: " + playerDict.RoundsPlayed,
                    "     - Playtime: " + playerDict.minutesPlayed + " minutes",
                    " - Position:",
                    "	  - X:"+ (int)myPlayer.GetPosition().x + " Y:" + (int)myPlayer.GetPosition().y + " Z:" + (int)myPlayer.GetPosition().z
                };
                //foreach (string str in playerStrings)
                //{
                //	_maxlen = Math.Max(_maxlen, str.Length);
                //}
                _maxlen = 29;
                string BuildTwoLiner(string str1, string str2 = "")
                {
                    return(StringToMax(str1, _maxlen) + "|" + StringToMax(str2, _maxlen).PadLeft(LeftPadding));
                }

                string serverConsole = "\n\nPlayer: (" + myPlayer.PlayerId + ") " + myPlayer.Name + Environment.NewLine +
                                       BuildTwoLiner(" - SteamID: " + myPlayer.SteamId, " - IP: " + myPlayer.IpAddress) + Environment.NewLine +
                                       BuildTwoLiner(" - Server Rank: " + "<color=" + myPlayer.GetUserGroup().Color + ">" + myPlayer.GetRankName() + "</color>") +
                                       BuildTwoLiner(" - Role: " + myPlayer.TeamRole.Role, " - Health: " + myPlayer.GetHealth()) + Environment.NewLine +
                                       BuildTwoLiner(" - AdminToolbox Toggables: ") + Environment.NewLine +
                                       BuildTwoLiner("   - Godmode: " + ColoredBools(playerDict.godMode), "  - NoDmg: " + ColoredBools(playerDict.dmgOff)) + Environment.NewLine +
                                       BuildTwoLiner("   - SpectatorOnly: " + ColoredBools(playerDict.spectatorOnly), "  - KeepSettings: " + ColoredBools(playerDict.keepSettings)) + Environment.NewLine +
                                       BuildTwoLiner("   - BreakDoors: " + ColoredBools(playerDict.destroyDoor), "  - PlayerLockDown: " + ColoredBools(playerDict.lockDown)) + Environment.NewLine +
                                       BuildTwoLiner("   - InstantKill: " + ColoredBools(playerDict.instantKill)) + Environment.NewLine +
                                       BuildTwoLiner("   - IsJailed: " + ColoredBools(playerDict.isJailed), " - Released In: " + remainingJailTime) + Environment.NewLine +
                                       BuildTwoLiner(" - Stats:") + Environment.NewLine +
                                       BuildTwoLiner("     - Kills: " + playerDict.Kills, " - TeamKills: " + playerDict.TeamKills) + Environment.NewLine +
                                       BuildTwoLiner("     - Deaths: " + playerDict.Deaths) + Environment.NewLine +
                                       BuildTwoLiner("     - Playtime: " + playerDict.minutesPlayed + " minutes", " - Rounds Played: " + playerDict.RoundsPlayed) + Environment.NewLine +
                                       BuildTwoLiner(" - Position:") + Environment.NewLine +
                                       BuildTwoLiner(" - X:" + (int)myPlayer.GetPosition().x + " Y:" + (int)myPlayer.GetPosition().y + " Z:" + (int)myPlayer.GetPosition().z) + Environment.NewLine;
                if (!isPlayer())
                {
                    return new string[] { serverConsole }
                }
                ;
                else
                {
                    return new string[] { remoteAdmin }
                };
            }
            return(new string[] { GetUsage() });
        }
    }
Example #51
0
 public HomeController(ICommandSender commandSender, IReadModelFacade readmodel)
 {
     _readmodel = readmodel;
     _commandSender = commandSender;
 }
Example #52
0
        public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            string target;
            int    range;

            if (!sender.CheckPermission("scputils.playsessions"))
            {
                response = "<color=red> You need a higher administration level to use this command!</color>";
                return(false);
            }

            if (arguments.Count < 2)
            {
                response = $"<color=yellow>Usage: {Command} <player name/id> <number of previous sessions to print(0 prints the last one)> </color>";
                return(false);
            }
            else
            {
                target = arguments.Array[1].ToString();
            }

            int.TryParse(arguments.Array[2], out range);


            Player databasePlayer = target.GetDatabasePlayer();

            if (databasePlayer == null)
            {
                response = "<color=yellow>Player not found on Database or Player is loading data!</color>";
                return(false);
            }


            if (range < 0)
            {
                response = "<color=red>You have to specify a positive number!</color>";
                return(false);
            }

            if (databasePlayer == null)
            {
                response = "<color=yellow>Player not found on Database or Player is loading data!</color>";
                return(false);
            }
            StringBuilder message = new StringBuilder($"[{databasePlayer.Name} ({databasePlayer.Id}@{databasePlayer.Authentication})]");

            message.AppendLine();


            for (int i = 0; i <= range; i++)
            {
                if (databasePlayer.PlaytimeSessionsLog.Count() - i - 1 >= 0)
                {
                    var session = databasePlayer.PlaytimeSessionsLog.ElementAt(databasePlayer.PlaytimeSessionsLog.Count() - i - 1);
                    message.AppendLine($"Session Start: [ {session.Key} ] - Session End: [ { session.Value} ] - Duration: [ {(session.Value - session.Key).ToString(@"hh\:mm\:ss")} ]");
                }
                else
                {
                    message.Append($"Limit reached! No more data about this player.");
                    response = $"{message}";
                    return(true);
                }
            }

            response = $"{message}";

            return(true);
        }
Example #53
0
 public FormController(IViewModelReader reader, ICommandSender sender)
 {
     _viewModelReader = reader;
     _commandSender = sender;
 }
Example #54
0
        protected override bool ExecuteParent(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            EventHandlers.LogCommandUsed((CommandSender)sender, EventHandlers.FormatArguments(arguments, 0));
            if (!((CommandSender)sender).CheckPermission("at.grenade"))
            {
                response = "You do not have permission to use this command";
                return(false);
            }

            if (arguments.Count < 2 || arguments.Count > 3)
            {
                response = "Usage: grenade ((player id / name) or (all / *)) (GrenadeType) (grenade time)";
                return(false);
            }

            switch (arguments.At(0))
            {
            case "*":
            case "all":
                if (!Enum.TryParse(arguments.At(1), true, out GrenadeType GType))
                {
                    response = $"Invalid value for grenade name: {arguments.At(1)}";
                    return(false);
                }

                if (GType == GrenadeType.Scp018)
                {
                    Cassie.Message("pitch_1.5 xmas_bouncyballs", true, false);
                    foreach (Player Pl in Player.List)
                    {
                        if (Pl.Role == RoleType.Spectator || Pl.Role == RoleType.None)
                        {
                            continue;
                        }

                        EventHandlers.SpawnGrenadeOnPlayer(Pl, GType, 0);
                    }
                }
                else
                {
                    if (arguments.Count != 3)
                    {
                        response = "Usage: grenade ((player id / name) or (all / *)) (GrenadeType) (grenade time)";
                        return(false);
                    }

                    if (!float.TryParse(arguments.At(2), out float Time))
                    {
                        response = $"Invalid value for grenade timer: {arguments.At(2)}";
                        return(false);
                    }

                    foreach (Player Pl in Player.List)
                    {
                        if (Pl.Role == RoleType.Spectator || Pl.Role == RoleType.None)
                        {
                            continue;
                        }

                        EventHandlers.SpawnGrenadeOnPlayer(Pl, GType, Time);
                    }
                }
                response = $"You spawned a {GType.ToString().ToLower()} on everyone";
                return(true);

            default:
                Player Ply = Player.Get(arguments.At(0));
                if (Ply == null)
                {
                    response = $"Player not found: {arguments.At(0)}";
                    return(false);
                }
                else if (Ply.Role == RoleType.Spectator || Ply.Role == RoleType.None)
                {
                    response = $"Player {Ply.Nickname} is not a valid class to spawn a grenade on";
                    return(false);
                }

                if (!Enum.TryParse(arguments.At(1), true, out GrenadeType Type))
                {
                    response = $"Invalid value for grenade name: {arguments.At(1)}";
                    return(false);
                }

                if (Type == GrenadeType.Scp018)
                {
                    EventHandlers.SpawnGrenadeOnPlayer(Ply, Type, 0);
                }
                else
                {
                    if (arguments.Count != 3)
                    {
                        response = "Usage: grenade ((player id / name) or (all / *)) (GrenadeType) (grenade time)";
                        return(false);
                    }

                    if (!float.TryParse(arguments.At(2), out float Time))
                    {
                        response = $"Invalid value for grenade timer: {arguments.At(2)}";
                        return(false);
                    }
                    EventHandlers.SpawnGrenadeOnPlayer(Ply, Type, Time);
                }

                response = $"You spawned a {Type.ToString().ToLower()} on {Ply.Nickname}";
                return(true);
            }
        }
 public static IEnumerable<object> BuildEventProcessors(ICommandSender commandSender)
 {
     yield return new Processes.RegistrationProcess(commandSender);
     yield break;
 }
Example #56
0
        public void SetUp()
        {
            _createSomething          = new CreateSomething();
            _somethingCreated         = new SomethingCreated();
            _somethingCreatedConcrete = new SomethingCreated();
            _events = new List <IEvent> {
                _somethingCreated
            };

            _createAggregate          = new CreateAggregate();
            _aggregateCreatedConcrete = new AggregateCreated();
            _aggregate        = new Aggregate();
            _aggregateCreated = (AggregateCreated)_aggregate.Events[0];

            _commandResponse = new CommandResponse {
                Events = _events
            };
            _domainCommandResponse = new CommandResponse {
                Events = _aggregate.Events
            };

            _eventPublisher = new Mock <IEventPublisher>();
            _eventPublisher
            .Setup(x => x.Publish(_aggregateCreatedConcrete));

            _domainStore = new Mock <IDomainStore>();
            _domainStore
            .Setup(x => x.Save(_aggregate.GetType(), _createAggregate.AggregateRootId, _createAggregate, new List <IDomainEvent>()
            {
                _aggregateCreated
            }));

            _eventFactory = new Mock <IEventFactory>();
            _eventFactory
            .Setup(x => x.CreateConcreteEvent(_somethingCreated))
            .Returns(_somethingCreatedConcrete);
            _eventFactory
            .Setup(x => x.CreateConcreteEvent(_aggregateCreated))
            .Returns(_aggregateCreatedConcrete);

            _validationService = new Mock <IValidationService>();
            _validationService
            .Setup(x => x.Validate(_createAggregate));

            _commandHandler = new Mock <ICommandHandler <CreateSomething> >();
            _commandHandler
            .Setup(x => x.Handle(_createSomething))
            .Returns(_commandResponse);

            _domainCommandHandler = new Mock <ICommandHandler <CreateAggregate> >();
            _domainCommandHandler
            .Setup(x => x.Handle(_createAggregate))
            .Returns(_domainCommandResponse);

            _handlerResolver = new Mock <IHandlerResolver>();
            _handlerResolver
            .Setup(x => x.ResolveHandler(_createSomething, typeof(ICommandHandler <>)))
            .Returns(_commandHandler.Object);
            _handlerResolver
            .Setup(x => x.ResolveHandler(_createAggregate, typeof(ICommandHandler <>)))
            .Returns(_domainCommandHandler.Object);

            _optionsMock = new Mock <IOptions <Options> >();
            _optionsMock
            .Setup(x => x.Value)
            .Returns(new Options());

            _sut = new CommandSender(_handlerResolver.Object,
                                     _eventPublisher.Object,
                                     _eventFactory.Object,
                                     _domainStore.Object,
                                     _validationService.Object,
                                     _optionsMock.Object);
        }
Example #57
0
        public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            var ply = Player.Get((sender as CommandSender)?.SenderId);

            if (ply.Role != RoleType.Scp079)
            {
                response = PluginMain.Instance.Config.NotScp079;
                return(false);
            }

            if (arguments.Count != 1)
            {
                response = "Команды: \n.079 blackout - выключает свет во всём комплексе \n.079 flash - делает вспышку камерой \n.079 cancel - останавливает боеголовку\n.079 find - Находит случайного игрока на камерах";
                return(false);
            }

            var args = arguments.Array;

            switch (args[1].ToLower())
            {
            case "blackout":
                if (ply.Level < PluginMain.Instance.Config.BlackoutLvl)
                {
                    response = PluginMain.Instance.Config.InsufLVL;
                    return(false);
                }
                if (PluginMain.Instance.IsBlackoutOnCooldown)
                {
                    response = PluginMain.Instance.Config.OnCooldown;
                    return(false);
                }
                PluginMain.Instance.IsBlackoutOnCooldown = true;
                Timing.CallDelayed(PluginMain.Instance.Config.BlackoutCooldown, () => PluginMain.Instance.IsBlackoutOnCooldown = false);
                if (ply.Energy >= PluginMain.Instance.Config.BlackoutEnergy)
                {
                    ply.Energy -= PluginMain.Instance.Config.BlackoutEnergy;
                }
                else
                {
                    response = PluginMain.Instance.Config.NoEnergyMsg;
                    return(false);
                }
                Map.TurnOffAllLights(PluginMain.Instance.Config.BlackoutTime);
                response = PluginMain.Instance.Config.AbilitySuccess;
                try
                {
                    CommsHack.AudioAPI.API.PlayFileRaw($"{Paths.Configs}/CommsHackAudio/{PluginMain.Instance.Config.BlackoutSoundPath}", PluginMain.Instance.Config.BlackoutSoundVolume);
                }
                catch (Exception x)
                {
                    Log.Info("CommsHack is not installed, skipping method call, playing cassie instead");
                    Log.Error(x);
                    Cassie.Message(PluginMain.Instance.Config.BlackoutCassie, true);
                }
                return(true);

            case "help":
                response = "Команды: \n.079 blackout - выключает свет во всём комплексе \n.079 flash - делает вспышку камерой \n.079 cancel - останавливает боеголовку\n.079 find - Находит случайного игрока на камерах";
                return(true);

            case "cancel":
                if (Warhead.IsInProgress)
                {
                    if (PluginMain.Instance.Handler.IsNukeOnCooldown)
                    {
                        response = PluginMain.Instance.Config.CancelCooldownMsg;
                        return(false);
                    }
                    if (ply.Level < PluginMain.Instance.Config.WarheadCancelLvl)
                    {
                        response = PluginMain.Instance.Config.InsufLVL;
                        return(true);
                    }
                    if (ply.Energy >= PluginMain.Instance.Config.WarheadCancelEnergy)
                    {
                        ply.Energy -= PluginMain.Instance.Config.WarheadCancelEnergy;
                    }
                    else
                    {
                        response = PluginMain.Instance.Config.NoEnergyMsg;
                        return(true);
                    }
                    if (Warhead.IsLocked)
                    {
                        response = PluginMain.Instance.Config.IsNotInProgressOrLocked;
                        return(false);
                    }
                    Timing.RunCoroutine(PluginMain.Instance.Handler.Nuke(), "nuke");
                    response = PluginMain.Instance.Config.AbilitySuccess;
                    return(true);
                }
                else
                {
                    response = PluginMain.Instance.Config.IsNotInProgressOrLocked;
                    return(true);
                }

            case "flash":
                if (ply.Level < PluginMain.Instance.Config.FlashLVL)
                {
                    response = PluginMain.Instance.Config.InsufLVL;
                    return(true);
                }
                if (PluginMain.Instance.IsFlashOnCooldown)
                {
                    response = PluginMain.Instance.Config.OnCooldown;
                    return(false);
                }
                if (ply.Energy >= PluginMain.Instance.Config.FlashEnergy)
                {
                    ply.Energy -= PluginMain.Instance.Config.FlashEnergy;
                }
                else
                {
                    response = PluginMain.Instance.Config.NoEnergyMsg;
                    return(true);
                }
                var pos = ply.ReferenceHub.scp079PlayerScript.currentCamera.transform.position;

                ply.SpawnFlashGrenade(pos, 0.5f);

                PluginMain.Instance.IsFlashOnCooldown = true;
                Timing.CallDelayed(PluginMain.Instance.Config.FlashCooldown, () => PluginMain.Instance.IsFlashOnCooldown = false);
                foreach (var player in Player.List)
                {
                    if (player.Role == RoleType.Scp106 && Vector3.Distance(player.Position, pos) <= 75)
                    {
                        player.EnableEffect(Exiled.API.Enums.EffectType.Blinded, 2);
                        break;
                    }
                }
                response = PluginMain.Instance.Config.AbilitySuccess;
                return(true);

            case "find":
                if (ply.Level < PluginMain.Instance.Config.FindLVL)
                {
                    response = PluginMain.Instance.Config.InsufLVL;
                    return(false);
                }
                if (ply.Energy >= PluginMain.Instance.Config.FindEnergy)
                {
                    ply.Energy -= PluginMain.Instance.Config.FindEnergy;
                }
                else
                {
                    response = PluginMain.Instance.Config.NoEnergyMsg;
                    return(false);
                }
                if (Player.List.Where(x => x.Team != Team.SCP && x.Team != Team.TUT && x.Team != Team.RIP).IsEmpty())
                {
                    response = PluginMain.Instance.Config.FindNoPlayers;
                    return(false);
                }
                Player    trackingPlayer = Player.List.Where(x => x.Team != Team.SCP && x.Team != Team.TUT && x.Team != Team.RIP).ToList()[UnityEngine.Random.Range(0, Player.List.Where(x => x.Team != Team.SCP && x.Team != Team.TUT && x.Team != Team.RIP).Count() - 1)];
                Camera079 nearestCamera  = Scp079PlayerScript.allCameras.First();
                float     distance       = float.MaxValue;
                float     ADistance;
                foreach (var cam in Scp079PlayerScript.allCameras)
                {
                    ADistance = Vector3.Distance(cam.transform.position, trackingPlayer.Position);
                    if (ADistance < distance)
                    {
                        nearestCamera = cam;
                        distance      = ADistance;
                    }
                }
                ply.ReferenceHub.scp079PlayerScript.CmdSwitchCamera(nearestCamera.cameraId, false);
                UnityEngine.Random.InitState((int)DateTime.Now.Ticks);
                response = $"Отслеживаю: {trackingPlayer.DisplayNickname ?? trackingPlayer.Nickname} - {trackingPlayer.Role}";
                return(false);

            default:
                response = "Команды:\n.079 blackout - выключает свет во всём комплексе \n.079 flash - делает вспышку камерой \n.079 cancel - останавливает боеголовку\n.079 find - Находит случайного игрока на камерах";
                return(false);
            }
        }
Example #58
0
 /// <summary>
 /// コマンドを実行します。
 /// </summary>
 /// <param name="source">コマンドのアクティベート元となる投稿。</param>
 /// <param name="args">引数。</param>
 /// <param name="body">コマンドに渡された、名前を除く全データ。</param>
 /// <returns>リプライに含まれる文字列。<c>null</c> を返した場合リプライが行われません。</returns>
 public abstract Task <string> OnActivatedAsync(ICommandSender sender, Server core, IShell shell, string[] args, string body);
Example #59
0
        public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            var permission    = false;
            var perPermission = false;

            if (arguments.Array == null || arguments.Array.Length < 2)
            {
                response = "Usage: event <event name>";
                return(true);
            }

            var command = arguments.Array[1].Trim().ToLower().Replace(" ", "");

            if (sender is PlayerCommandSender player)
            {
                permission    = player.CheckPermission("easyevents.use");
                perPermission = player.CheckPermission("easyevents.event." + command);
            }
            else
            {
                permission    = true;
                perPermission = true;
            }

            if (EasyEvents.Singleton.Config.PerEventPermissions && !perPermission)
            {
                response = "You do not have permission to run this event.";
                return(true);
            }

            if (!permission)
            {
                response = "You do not have permission to run this command.";
                return(true);
            }

            if (!ScriptStore.Scripts.ContainsKey(command))
            {
                response = "Event \"" + command + "\" does not exist!";
                return(true);
            }

            if (!ScriptStore.Scripts.TryGetValue(command, out var text))
            {
                response = "Event \"" + command + "\" does not exist!";
                return(true);
            }

            if (Exiled.API.Features.Round.IsStarted)
            {
                response = "Events can only be ran before the round is started.";
                return(true);
            }

            if (ScriptActions.scriptData.eventRan)
            {
                response = "Only one event can be ran per round. Restart the round to run this event.";
                return(true);
            }

            try
            {
                ScriptHandler.RunScript(text);
                response = "Event \"" + command + "\" started successfully";
                ScriptActions.scriptData.eventRan = true;
                Loader.Plugins.FirstOrDefault(pl => pl.Name == "ScpStats")?.Assembly?.GetType("SCPStats.EventHandler")?.GetField("PauseRound")?.SetValue(null, true);
                return(true);
            }
            catch (Exception e)
            {
                response = e.ToString();
                return(true);
            }
        }
Example #60
0
        public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            string target;

            if (!sender.CheckPermission("scputils.playerinfo"))
            {
                target = Exiled.API.Features.Player.Get(((CommandSender)sender).SenderId).ToString().Split(new string[] { " " }, StringSplitOptions.None)[2];
            }
            else
            {
                if (arguments.Count < 1)
                {
                    response = $"<color=yellow>Usage: {Command} <player name/id></color>";
                    return(false);
                }
                else
                {
                    target = arguments.Array[1].ToString();
                }
            }
            Player databasePlayer = target.GetDatabasePlayer();

            if (databasePlayer == null)
            {
                response = $"<color=yellow>Player not found on Database or Player is loading data!</color>";
                return(false);
            }



            string text = $"<color=green>\n[{databasePlayer.Name} ({databasePlayer.Id}@{databasePlayer.Authentication})]\n\n" +
                          $"Total SCP Suicides/Quits: [ {databasePlayer.ScpSuicideCount} ]\n" +
                          $"Total SCP Suicides/Quits Kicks: [ {databasePlayer.TotalScpSuicideKicks} ]\n" +
                          $"Total SCP Suicides/Quits Bans: [ {databasePlayer.TotalScpSuicideBans} ]\n" +
                          $"Total Games played as SCP: [ {databasePlayer.TotalScpGamesPlayed} ]\n" +
                          $"Total Suicides/Quits Percentage: [ {Math.Round(databasePlayer.SuicidePercentage, 2)}% ]\n" +
                          $"First Join: [ {databasePlayer.FirstJoin} ]\n" +
                          $"Last Seen: [ {databasePlayer.LastSeen} ]\n" +
                          $"Custom Color: [ {databasePlayer.ColorPreference} ]\n" +
                          $"Custom Name: [ {databasePlayer.CustomNickName} ]\n" +
                          $"Temporarily Badge: [ {databasePlayer.BadgeName} ]\n" +
                          $"Badge Expire: [ {databasePlayer.BadgeExpire} ]\n" +
                          //  $"Previous Badge: [ {databasePlayer.PreviousBadge} ]\n" +
                          $"Hide Badge: [ {databasePlayer.HideBadge} ]\n" +
                          $"Asn Whitelisted: [ {databasePlayer.ASNWhitelisted} ]\n" +
                          $"Keep Flag: [ {databasePlayer.KeepPreferences} ]\n" +
                          $"Ignore DNT: [ {databasePlayer.IgnoreDNT} ]\n" +
                          $"Total Playtime: [ { new TimeSpan(0, 0, databasePlayer.PlayTimeRecords.Values.Sum()).ToString() } ]</color>";

            if (databasePlayer.IsRestricted())
            {
                text += $"\n<color=red>User account is currently restricted</color>\nReason: [ {databasePlayer.Restricted.Values.Last()} ]\nExpire: [ {databasePlayer.Restricted.Keys.Last()} ]";
            }

            if (databasePlayer.RoundBanLeft >= 1)
            {
                text += $"\n<color=red>User account is currently SCP-Banned:</color>\nRound(s) left: [ {databasePlayer.RoundBanLeft} ]";
            }
            response = text;

            return(true);
        }