Guest User

Untitled

a guest
Mar 22nd, 2018
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.56 KB | None | 0 0
  1. // Reference: Oxide.Core.MySql
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. using Oxide.Core.Database;
  7. using Oxide.Core.Libraries.Covalence;
  8. using UnityEngine;
  9. using System.Collections;
  10.  
  11.  
  12. namespace Oxide.Plugins
  13. {
  14.     [Info("PremiumShop", "Pablo", "1.0.0")]
  15.     [Description("Odbieranie z bazy zakupionej rangi za SMS pod komendą /odbierz")]
  16.  
  17.     class PremiumShop : CovalencePlugin
  18.     {
  19.         readonly Core.MySql.Libraries.MySql mySql = new Core.MySql.Libraries.MySql();
  20.         Connection connection;
  21.         DefaultConfig config;
  22.  
  23.         #region Configuration
  24.  
  25.         class DefaultConfig
  26.         {
  27.             readonly List<string> exampleCommands = new List<string>();
  28.             public readonly Dictionary<string, List<string>> Packages = new Dictionary<string, List<string>>();
  29.  
  30.             public DefaultConfig()
  31.             {
  32.                  exampleCommands.Add("grant user {0} some.permission");
  33.                 exampleCommands.Add("grant user {0} another.permission");
  34.                 Packages.Add("Example", exampleCommands);
  35.                 Packages.Add("VIP", exampleCommands);
  36.                 Packages.Add("SVIP", exampleCommands);
  37.                  
  38.                
  39.             }
  40.  
  41.             public string DatabaseHost = "178.32.149.184";
  42.             public int DatabasePort = 3306;
  43.             public string DatabaseName = "db_8079";
  44.             public string DatabaseUser = "k5278_s8079";
  45.             public string DatabasePassword = "361342825fe6";
  46.         }
  47.  
  48.         protected override void LoadDefaultConfig()
  49.         {
  50.             PrintWarning("Creating a new configuration file");
  51.             Config.Clear();
  52.             config = new DefaultConfig();
  53.             Config.WriteObject(config, true);
  54.             SaveConfig();
  55.         }
  56.  
  57.         #endregion
  58.  
  59.         void Init()
  60.         {
  61.  
  62.             try
  63.             {
  64.                 config = Config.ReadObject<DefaultConfig>();
  65.             }
  66.             catch
  67.             {
  68.                 PrintWarning("Could not read config, creating new default config");
  69.                 LoadDefaultConfig();
  70.             }
  71.         }
  72.  
  73.         void canPlayerGetPremium(IPlayer player)
  74.         {
  75.             var steamID = player.Id;
  76.             string tableID;
  77.             string packageClaimed;
  78.             string tableClaimed;
  79.  
  80.             var SelectData = "SELECT id, claimed, item_name FROM `premium_table` WHERE steamid = " + steamID + " AND claimed = 0 LIMIT 1";
  81.             connection = mySql.OpenDb(config.DatabaseHost, config.DatabasePort, config.DatabaseName, config.DatabaseUser, config.DatabasePassword, this);
  82.             var sql = Sql.Builder.Append(SelectData);
  83.             mySql.Query(sql, connection, list =>
  84.             {
  85.                 var sb = new StringBuilder();
  86.                 foreach (var entry in list)
  87.                 {
  88.                     sb.AppendFormat("{0}", entry["id"]);
  89.                 }
  90.  
  91.                 var sbb = new StringBuilder();
  92.                 foreach (var entry in list)
  93.                 {
  94.                     sbb.AppendFormat("{0}", entry["item_name"]);
  95.                 }
  96.  
  97.                 var sbbb = new StringBuilder();
  98.                 foreach (var entry in list)
  99.                 {
  100.                     sbbb.AppendFormat("{0}", entry["claimed"]);
  101.                 }
  102.  
  103.                 tableID = sb.ToString();
  104.                 packageClaimed = sbb.ToString();
  105.                 tableClaimed = sbbb.ToString();
  106.  
  107.                 var packageKey = GetPackageKey(packageClaimed, config.Packages);
  108.  
  109.                 if (tableClaimed != "0")
  110.                 {
  111.                     player.Reply("Niestety ale nie ma nic dla ciebie!");
  112.                 }
  113.                 else
  114.                 {
  115.                     List<string> consoleCommands;
  116.                     if (config.Packages.TryGetValue(packageKey, out consoleCommands))
  117.                     {
  118.  
  119.                         var UpdateData = "UPDATE `premium_table` SET `claimed` = '1' WHERE `premium_table`.`id` = " + tableID;
  120.                         sql = Sql.Builder.Append(UpdateData);
  121.                         mySql.Update(sql, connection);
  122.                         RunConsoleCommands(consoleCommands, steamID);
  123.                         Puts($"{player} odebral usluge o nazwie {packageClaimed}");
  124.                         server.Broadcast("<color=#ffa500ff>" + player.Name + "</color> odebrał pakiet <color=#ffa500ff>" + packageClaimed + "</color>!");
  125.                         string cash;
  126.                         switch (packageClaimed)
  127.                         {
  128.                             case "premium-vip":
  129.                                 cash = "4,05";
  130.                                 server.Broadcast("<color=#00aaaa>Czyli wspomogl serwer o </color><color=#ffa500ff>" + cash + "</color>zl!");
  131.                                 break;
  132.                             case "premium_svip":
  133.                                 cash = "9,00";
  134.                                 server.Broadcast("<color=#00aaaa>Czyli wspomogl serwer o </color><color=#ffa500ff>" + cash + "</color>zl!");
  135.                                 break;
  136.                            
  137.                            case "premium_evip":
  138.                                 cash = "11,25";
  139.                                 server.Broadcast("<color=#00aaaa>Czyli wspomogl serwer o </color><color=#ffa500ff>" + cash + "</color>zl!");
  140.                                 break;
  141.                         }
  142.                     }
  143.                     else
  144.                     {
  145.                         Puts($"{player} probowal odebrac {packageClaimed}, lecz taka usluga nie istnieje!");
  146.                     }
  147.                 }
  148.             });
  149.  
  150.             mySql.CloseDb(connection);
  151.         }
  152.  
  153.         [Command("odbierz")]
  154.         void PremiumCommand(IPlayer player, string command, string[] args)
  155.         {
  156.             canPlayerGetPremium(player);
  157.             return;
  158.         }
  159.  
  160.         static string GetPackageKey(string packageName, Dictionary<string, List<string>> packages)
  161.         {
  162.             foreach (var entry in packages)
  163.                 if (packageName.Contains(entry.Key)) return entry.Key;
  164.             return "";
  165.         }
  166.  
  167.         void RunConsoleCommands(List<string> commandsList, string playerName)
  168.         {
  169.             foreach (var command in commandsList) server.Command(string.Format(command, playerName));
  170.         }
  171.  
  172.         T GetConfig<T>(string name, T value) => Config[name] == null ? value : (T)Convert.ChangeType(Config[name], typeof(T));
  173.  
  174.         string Lang(string key, string id = null, params object[] args) => string.Format(lang.GetMessage(key, this, id), args);
  175.     }
  176. }
Add Comment
Please, Sign In to add comment