Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Reference: Oxide.Core.MySql
- using System;
- using System.Collections.Generic;
- using System.Text;
- using Oxide.Core.Database;
- using Oxide.Core.Libraries.Covalence;
- using UnityEngine;
- using System.Collections;
- namespace Oxide.Plugins
- {
- [Info("PremiumShop", "Pablo", "1.0.0")]
- [Description("Odbieranie z bazy zakupionej rangi za SMS pod komendą /odbierz")]
- class PremiumShop : CovalencePlugin
- {
- readonly Core.MySql.Libraries.MySql mySql = new Core.MySql.Libraries.MySql();
- Connection connection;
- DefaultConfig config;
- #region Configuration
- class DefaultConfig
- {
- readonly List<string> exampleCommands = new List<string>();
- public readonly Dictionary<string, List<string>> Packages = new Dictionary<string, List<string>>();
- public DefaultConfig()
- {
- exampleCommands.Add("grant user {0} some.permission");
- exampleCommands.Add("grant user {0} another.permission");
- Packages.Add("Example", exampleCommands);
- Packages.Add("VIP", exampleCommands);
- Packages.Add("SVIP", exampleCommands);
- }
- public string DatabaseHost = "178.32.149.184";
- public int DatabasePort = 3306;
- public string DatabaseName = "db_8079";
- public string DatabaseUser = "k5278_s8079";
- public string DatabasePassword = "361342825fe6";
- }
- protected override void LoadDefaultConfig()
- {
- PrintWarning("Creating a new configuration file");
- Config.Clear();
- config = new DefaultConfig();
- Config.WriteObject(config, true);
- SaveConfig();
- }
- #endregion
- void Init()
- {
- try
- {
- config = Config.ReadObject<DefaultConfig>();
- }
- catch
- {
- PrintWarning("Could not read config, creating new default config");
- LoadDefaultConfig();
- }
- }
- void canPlayerGetPremium(IPlayer player)
- {
- var steamID = player.Id;
- string tableID;
- string packageClaimed;
- string tableClaimed;
- var SelectData = "SELECT id, claimed, item_name FROM `premium_table` WHERE steamid = " + steamID + " AND claimed = 0 LIMIT 1";
- connection = mySql.OpenDb(config.DatabaseHost, config.DatabasePort, config.DatabaseName, config.DatabaseUser, config.DatabasePassword, this);
- var sql = Sql.Builder.Append(SelectData);
- mySql.Query(sql, connection, list =>
- {
- var sb = new StringBuilder();
- foreach (var entry in list)
- {
- sb.AppendFormat("{0}", entry["id"]);
- }
- var sbb = new StringBuilder();
- foreach (var entry in list)
- {
- sbb.AppendFormat("{0}", entry["item_name"]);
- }
- var sbbb = new StringBuilder();
- foreach (var entry in list)
- {
- sbbb.AppendFormat("{0}", entry["claimed"]);
- }
- tableID = sb.ToString();
- packageClaimed = sbb.ToString();
- tableClaimed = sbbb.ToString();
- var packageKey = GetPackageKey(packageClaimed, config.Packages);
- if (tableClaimed != "0")
- {
- player.Reply("Niestety ale nie ma nic dla ciebie!");
- }
- else
- {
- List<string> consoleCommands;
- if (config.Packages.TryGetValue(packageKey, out consoleCommands))
- {
- var UpdateData = "UPDATE `premium_table` SET `claimed` = '1' WHERE `premium_table`.`id` = " + tableID;
- sql = Sql.Builder.Append(UpdateData);
- mySql.Update(sql, connection);
- RunConsoleCommands(consoleCommands, steamID);
- Puts($"{player} odebral usluge o nazwie {packageClaimed}");
- server.Broadcast("<color=#ffa500ff>" + player.Name + "</color> odebrał pakiet <color=#ffa500ff>" + packageClaimed + "</color>!");
- string cash;
- switch (packageClaimed)
- {
- case "premium-vip":
- cash = "4,05";
- server.Broadcast("<color=#00aaaa>Czyli wspomogl serwer o </color><color=#ffa500ff>" + cash + "</color>zl!");
- break;
- case "premium_svip":
- cash = "9,00";
- server.Broadcast("<color=#00aaaa>Czyli wspomogl serwer o </color><color=#ffa500ff>" + cash + "</color>zl!");
- break;
- case "premium_evip":
- cash = "11,25";
- server.Broadcast("<color=#00aaaa>Czyli wspomogl serwer o </color><color=#ffa500ff>" + cash + "</color>zl!");
- break;
- }
- }
- else
- {
- Puts($"{player} probowal odebrac {packageClaimed}, lecz taka usluga nie istnieje!");
- }
- }
- });
- mySql.CloseDb(connection);
- }
- [Command("odbierz")]
- void PremiumCommand(IPlayer player, string command, string[] args)
- {
- canPlayerGetPremium(player);
- return;
- }
- static string GetPackageKey(string packageName, Dictionary<string, List<string>> packages)
- {
- foreach (var entry in packages)
- if (packageName.Contains(entry.Key)) return entry.Key;
- return "";
- }
- void RunConsoleCommands(List<string> commandsList, string playerName)
- {
- foreach (var command in commandsList) server.Command(string.Format(command, playerName));
- }
- T GetConfig<T>(string name, T value) => Config[name] == null ? value : (T)Convert.ChangeType(Config[name], typeof(T));
- string Lang(string key, string id = null, params object[] args) => string.Format(lang.GetMessage(key, this, id), args);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement