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); }
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); }); }
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); } }