Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement