Advertisement
Guest User

Untitled

a guest
Sep 27th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.84 KB | None | 0 0
  1. using Oxide.Core;
  2. using Oxide.Core.Libraries;
  3. using Oxide.Core.Libraries.Covalence;
  4. using Oxide.Ext.MySql;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. namespace Oxide.Plugins
  10. {
  11. [Info("TimedGroup", "Studzik5521", "1.3.0", ResourceId = 0)]
  12. [Description("Timed Groups using MYSQL! for Rust and HurtWorld")]
  13. class TimedGroup2 : CovalencePlugin
  14. {
  15. private readonly Ext.MySql.Libraries.MySql _mySql = Interface.GetMod().GetLibrary<Ext.MySql.Libraries.MySql>();
  16. private Core.Database.Connection _mySqlConnection;
  17.  
  18. #region Config
  19. static string adres = "localhost";
  20. static int port = 3306;
  21. static string db = "hurtworld";
  22. static string login = "test";
  23. static string passworld = "test123";
  24. static string server = "rust";
  25. static int interval = 15;
  26.  
  27.  
  28.  
  29.  
  30.  
  31. protected override void LoadDefaultConfig() { }
  32.  
  33. private void CheckCfg<T>(string key, ref T var)
  34. {
  35. if (Config[key] is T)
  36. var = (T)Config[key];
  37. else
  38. Config[key] = var;
  39. }
  40. void UnLoaded()
  41. {
  42. Puts("Odładowano " + this);
  43. }
  44.  
  45. void Init()
  46. {
  47.  
  48. CheckCfg("adres", ref adres);
  49. CheckCfg("port", ref port);
  50. CheckCfg("db", ref db);
  51. CheckCfg("login", ref login);
  52. CheckCfg("passworld", ref passworld);
  53. CheckCfg("server", ref server);
  54. CheckCfg("interval", ref interval);
  55.  
  56. SaveConfig();
  57. checkusers();
  58.  
  59.  
  60. }
  61. #endregion
  62.  
  63. #region Plugin
  64. private void checkusers()
  65. {
  66.  
  67. _mySqlConnection = _mySql.OpenDb(adres, port, db, login, passworld, this);
  68.  
  69. timer.Repeat(interval, 0, () =>
  70. {
  71. Puts("########### ### ###########");
  72. Puts("#### SPRAWDZANIE RANG ####");
  73. Puts("========= +++ =========");
  74.  
  75. #if RUST
  76. var Online = BasePlayer.activePlayerList as List<BasePlayer>;
  77. foreach (BasePlayer player in Online)
  78. {
  79. string nick = player.displayName;
  80. string steamid = player.UserIDString;
  81. #else
  82. foreach (var pair in GameManager.Instance.GetSessions())
  83. {
  84. var tplayer = pair.Value;
  85.  
  86. string nick = tplayer.Name;
  87. string steamid = tplayer.SteamId.ToString();
  88. #endif
  89. string[] plgroups = permission.GetUserGroups(steamid);
  90. int grcount = plgroups.Count() - 1;
  91.  
  92. var sql = Core.Database.Sql.Builder.Append(@"SELECT `yes`, `ranga`, `data` FROM sklep WHERE steamid=" + steamid + " and serwer='" + server + "';");
  93. _mySql.Query(sql, _mySqlConnection, list =>
  94. {
  95.  
  96. DateTime dateNow = DateTime.Now;
  97.  
  98. if (list == null)
  99. {
  100. Puts("44421" + nick);
  101. return;
  102. }
  103. int yaa = 0;
  104.  
  105. for (int ii = 0; ii <= grcount; ii++)
  106. {
  107.  
  108. foreach (var entry in list)
  109. {
  110. if ((plgroups[ii].ToLower() == entry["ranga"].ToString().ToLower()) && (plgroups[ii].ToLower() != "default"))
  111. {
  112. yaa = 1;
  113. }
  114.  
  115. }
  116. if ((yaa == 0) && (plgroups[ii].ToLower() != "default"))
  117. {
  118. rmrank(steamid, plgroups[ii], nick);
  119.  
  120. }
  121. }
  122.  
  123. foreach (var entry in list)
  124. {
  125. DateTime dateSQL = DateTime.ParseExact(entry["data"].ToString(), "MM/dd/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); //konwert daty z serwera
  126.  
  127.  
  128. if (!IsHaveGroup(steamid, entry["ranga"].ToString()) && entry["ranga"].ToString().ToLower() != "default" && dateSQL >= dateNow)
  129. {
  130. addrank(steamid, entry["ranga"].ToString(), nick);
  131. }
  132.  
  133. else if (IsHaveGroup(steamid, entry["ranga"].ToString()) && entry["ranga"].ToString().ToLower() != "default" && dateSQL <= dateNow)
  134. {
  135. rmrank(steamid, entry["ranga"].ToString(), nick);
  136.  
  137. }
  138.  
  139. }
  140.  
  141. });
  142.  
  143.  
  144. }
  145.  
  146. Puts("########### ### ###########");
  147. });
  148.  
  149. }
  150.  
  151. #endregion
  152.  
  153. void addrank(string steamid, string ranga, string nick)
  154. {
  155. if (!IsHaveGroup(steamid, ranga))
  156. {
  157. permission.AddUserGroup(steamid, ranga);
  158. var added = Core.Database.Sql.Builder.Append(@"update sklep set yes=1 where yes=0 and ranga='" + ranga + "' and steamid=" + steamid + " and serwer='" + server + "';");
  159. _mySql.Insert(added, _mySqlConnection);
  160. Puts("Nadano Rangę " + ranga + " graczowi " + nick);
  161. }
  162. else
  163. {
  164. Puts(nick + " już ma " + ranga);
  165. }
  166. }
  167.  
  168. void rmrank(string steamid, string ranga, string nick)
  169. {
  170. if (IsHaveGroup(steamid, ranga))
  171. {
  172. permission.RemoveUserGroup(steamid, ranga);
  173. Puts("Zabrano Rangę " + ranga + " graczowi " + nick);
  174. }
  175. else
  176. {
  177. Puts(nick + " nie ma " + ranga);
  178.  
  179. }
  180. }
  181.  
  182. bool IsHaveGroup(string steamid, string ranga) => permission.UserHasGroup(steamid, ranga);
  183. }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement