コード例 #1
0
        public void IssueReward()
        {
            var random  = new System.Random();
            var reward  = random.Next(Region.MinimumReward, Region.MaximumReward);
            var uPlayer = UnturnedPlayer.FromPlayer(Robber);

            if (Plugin.Instance.Configuration.Instance.UseUconomy)
            {
                if (!Plugin.IsDependencyLoaded("Uconomy"))
                {
                    Rocket.Core.Logging.Logger.LogWarning("Uconomy plugin not found, giving reward in experience");
                    uPlayer.Experience += (uint)reward;
                }
                else
                {
                    UconomyHelper.Pay(uPlayer.Id, reward);
                }
            }
            else
            {
                uPlayer.Experience += (uint)reward;
            }

            UnturnedChat.Say(Plugin.Instance.Translate("finished", uPlayer.CharacterName), Color.yellow);
        }
コード例 #2
0
        public static void BuyCommand(UnturnedPlayer player, PetConfig config)
        {
            if (!player.HasPermission(config.Permission) && !player.IsAdmin && !string.IsNullOrEmpty(config.Permission))
            {
                pluginInstance.ReplyPlayer(player, "PetBuyNoPermission", config.Name);
                return;
            }

            if (pluginInstance.Database.GetPlayerPets(player.Id).Any(x => x.AnimalId == config.Id))
            {
                pluginInstance.ReplyPlayer(player, "PetBuyAlreadyHave", config.Name);
                return;
            }

            TaskDispatcher.QueueOnMainThread(() =>
            {
                if (UconomyHelper.GetPlayerBalance(player.Id) < config.Cost)
                {
                    pluginInstance.ReplyPlayer(player, "PetCantAfford", config.Name, config.Cost);
                    return;
                }

                UconomyHelper.IncreaseBalance(player.Id, config.Cost * -1);
                RunAsync(() =>
                {
                    pluginInstance.Database.AddPlayerPet(new PlayerPet()
                    {
                        AnimalId     = config.Id,
                        PlayerId     = player.Id,
                        PurchaseDate = DateTime.UtcNow
                    });
                });
                pluginInstance.ReplyPlayer(player, "PetBuySuccess", config.Name, config.Cost);
            });
        }
コード例 #3
0
        private void ExecuteFeatures(RocketPlayer player, Package features, string itemName, bool wasAlready)
        {
            if (features.Commands != null && features.Commands.Length > 0)
            {
                foreach (var command in features.Commands)
                {
                    R.Commands.Execute(new ConsolePlayer(), command.Replace("{steamid}", player.Id).Replace("{steamname}", player.DisplayName));
                }
            }

            if (features.AddGroups != null && features.AddGroups.Length > 0)
            {
                foreach (var group in features.AddGroups)
                {
                    R.Permissions.AddPlayerToGroup(group, player);
                }
            }

            if (features.RemoveGroups != null && features.RemoveGroups.Length > 0)
            {
                foreach (var group in features.RemoveGroups)
                {
                    R.Permissions.RemovePlayerFromGroup(group, player);
                }
            }

            if (features.UconomyMoney > 0)
            {
                if (pluginInstance.Configuration.Instance.PayUconomyMoneyOnce && wasAlready)
                {
                    Logger.LogWarning("Uconomy money was already paid, skipping.");
                }
                else
                {
                    if (RocketPlugin.IsDependencyLoaded("Uconomy"))
                    {
                        // using helper to avoid depdency error message in case uconomy not installed
                        UconomyHelper.PayMoney(player.Id, features.UconomyMoney);
                    }
                    else
                    {
                        Logger.LogWarning($"Failed to pay {features.UconomyMoney} money to {player.DisplayName} {player.Id}, because Uconomy is not installed");
                    }
                }
            }

            if (!features.DisableBroadcast && player.DisplayName != null)
            {
                UnturnedChat.Say(pluginInstance.Translate("PurchaseBroadcast", player.DisplayName, itemName), pluginInstance.MessageColor);
            }
        }