コード例 #1
0
ファイル: Kits.cs プロジェクト: darkcrowsx/Kits
 protected override void Load()
 {
     Instance = this;
     if (IsDependencyLoaded("Uconomy"))
     {
         Logger.Log("Optional dependency Uconomy is present.");
     }
     else
     {
         Logger.Log("Optional dependency Uconomy is not present.");
     }
 }
コード例 #2
0
        protected override void Load()
        {
            Instance = this;
            Db       = PlayerLibrary.DbMySQL.DbContext();

            if (PlayerLibrary.DbMySQL.CheckTable(Configuration.Instance.TableName))
            {
                PlayerLibrary.DbMySQL.CreateTables("CREATE TABLE `" + Configuration.Instance.TableName + "` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `kit` int(10) UNSIGNED NOT NULL, `player` int(10) UNSIGNED NOT NULL, `count` smallint(5) UNSIGNED DEFAULT NULL, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `kits_player` USING HASH (`player`, `kit`), CONSTRAINT `kits_player` FOREIGN KEY (`player`) REFERENCES `Players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE = InnoDB CHARSET = utf8;");
            }

            if (IsDependencyLoaded("Uconomy"))
            {
                Logger.Log("Optional dependency Uconomy is present.");
            }
            else
            {
                Logger.Log("Optional dependency Uconomy is not present.");
            }
        }
コード例 #3
0
        public void Execute(IRocketPlayer caller, string[] command)
        {
            UnturnedPlayer player = (UnturnedPlayer)caller;

            if (command.Length != 1)
            {
                UnturnedChat.Say(caller, Kits.Instance.Translations.Instance.Translate("command_kit_invalid_parameter"));
                throw new WrongUsageOfCommandException(caller, this);
            }

            Kit kit = Kits.Instance.Configuration.Instance.Kits.Where(k => k.Name.ToLower() == command[0].ToLower()).FirstOrDefault();

            if (kit == null)
            {
                UnturnedChat.Say(caller, Kits.Instance.Translations.Instance.Translate("command_kit_not_found"));
                throw new WrongUsageOfCommandException(caller, this);
            }

            bool hasPermissions = caller.HasPermission("kit.*") | caller.HasPermission("kit." + kit.Name.ToLower());

            if (!hasPermissions)
            {
                UnturnedChat.Say(caller, Kits.Instance.Translations.Instance.Translate("command_kit_no_permissions"));
                throw new NoPermissionsForCommandException(caller, this);
            }

            KeyValuePair <string, DateTime> globalCooldown = Kits.GlobalCooldown.Where(k => k.Key == caller.ToString()).FirstOrDefault();

            if (!globalCooldown.Equals(default(KeyValuePair <string, DateTime>)))
            {
                double globalCooldownSeconds = (DateTime.Now - globalCooldown.Value).TotalSeconds;
                if (globalCooldownSeconds < Kits.Instance.Configuration.Instance.GlobalCooldown)
                {
                    UnturnedChat.Say(caller, Kits.Instance.Translations.Instance.Translate("command_kit_cooldown_command", (int)(Kits.Instance.Configuration.Instance.GlobalCooldown - globalCooldownSeconds)));
                    return;
                }
            }

            KeyValuePair <string, DateTime> individualCooldown = Kits.InvididualCooldown.Where(k => k.Key == (caller.ToString() + kit.Name)).FirstOrDefault();

            if (!individualCooldown.Equals(default(KeyValuePair <string, DateTime>)))
            {
                double individualCooldownSeconds = (DateTime.Now - individualCooldown.Value).TotalSeconds;
                if (individualCooldownSeconds < kit.Cooldown)
                {
                    UnturnedChat.Say(caller, Kits.Instance.Translations.Instance.Translate("command_kit_cooldown_kit", (int)(kit.Cooldown - individualCooldownSeconds)));
                    return;
                }
            }

            bool cancelBecauseNotEnoughtMoney = false;

            if (kit.Money.HasValue && kit.Money.Value != 0)
            {
                Kits.ExecuteDependencyCode("Uconomy", (IRocketPlugin plugin) =>
                {
                    Uconomy.Uconomy Uconomy = (Uconomy.Uconomy)plugin;
                    if ((Uconomy.Database.GetBalance(player.CSteamID.ToString()) + kit.Money.Value) < 0)
                    {
                        cancelBecauseNotEnoughtMoney = true;
                        UnturnedChat.Say(caller, Kits.Instance.Translations.Instance.Translate("command_kit_no_money", Math.Abs(kit.Money.Value), Uconomy.Configuration.Instance.MoneyName, kit.Name));
                        return;
                    }
                    else
                    {
                        UnturnedChat.Say(caller, Kits.Instance.Translations.Instance.Translate("command_kit_money", kit.Money.Value, Uconomy.Configuration.Instance.MoneyName, kit.Name));
                    }
                    Uconomy.Database.IncreaseBalance(player.CSteamID.ToString(), kit.Money.Value);
                });
            }

            if (cancelBecauseNotEnoughtMoney)
            {
                throw new WrongUsageOfCommandException(caller, this);
            }

            foreach (KitItem item in kit.Items)
            {
                try
                {
                    if (!player.GiveItem(item.ItemId, item.Amount))
                    {
                        Logger.Log(Kits.Instance.Translations.Instance.Translate("command_kit_failed_giving_item", player.CharacterName, item.ItemId, item.Amount));
                    }
                }
                catch (Exception ex)
                {
                    Logger.LogException(ex, "Failed giving item " + item.ItemId + " to player");
                }
            }

            if (kit.XP.HasValue && kit.XP != 0)
            {
                player.Experience += kit.XP.Value;
                UnturnedChat.Say(caller, Kits.Instance.Translations.Instance.Translate("command_kit_xp", kit.XP.Value, kit.Name));
            }

            if (kit.Vehicle.HasValue)
            {
                try
                {
                    player.GiveVehicle(kit.Vehicle.Value);
                }
                catch (Exception ex)
                {
                    Logger.LogException(ex, "Failed giving vehicle " + kit.Vehicle.Value + " to player");
                }
            }

            UnturnedChat.Say(caller, Kits.Instance.Translations.Instance.Translate("command_kit_success", kit.Name));

            if (Kits.GlobalCooldown.ContainsKey(caller.ToString()))
            {
                Kits.GlobalCooldown[caller.ToString()] = DateTime.Now;
            }
            else
            {
                Kits.GlobalCooldown.Add(caller.ToString(), DateTime.Now);
            }

            if (Kits.GlobalCooldown.ContainsKey(caller.ToString()))
            {
                Kits.InvididualCooldown[caller.ToString() + kit.Name] = DateTime.Now;
            }
            else
            {
                Kits.InvididualCooldown.Add(caller.ToString() + kit.Name, DateTime.Now);
            }
        }
コード例 #4
0
ファイル: Kits.cs プロジェクト: kondziuxon/Kits
 protected override void Load()
 {
     Instance = this;
 }