Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Oxide.Core;
- using Oxide.Core.Libraries;
- using Oxide.Core.Libraries.Covalence;
- using Oxide.Ext.MySql;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Oxide.Plugins
- {
- [Info("TimedGroup", "Studzik5521", "1.3.0", ResourceId = 0)]
- [Description("Timed Groups using MYSQL! for Rust and HurtWorld")]
- class TimedGroup2 : CovalencePlugin
- {
- private readonly Ext.MySql.Libraries.MySql _mySql = Interface.GetMod().GetLibrary<Ext.MySql.Libraries.MySql>();
- private Core.Database.Connection _mySqlConnection;
- #region Config
- static string adres = "localhost";
- static int port = 3306;
- static string db = "hurtworld";
- static string login = "test";
- static string passworld = "test123";
- static string server = "rust";
- static int interval = 15;
- protected override void LoadDefaultConfig() { }
- private void CheckCfg<T>(string key, ref T var)
- {
- if (Config[key] is T)
- var = (T)Config[key];
- else
- Config[key] = var;
- }
- void UnLoaded()
- {
- Puts("Odładowano " + this);
- }
- void Init()
- {
- CheckCfg("adres", ref adres);
- CheckCfg("port", ref port);
- CheckCfg("db", ref db);
- CheckCfg("login", ref login);
- CheckCfg("passworld", ref passworld);
- CheckCfg("server", ref server);
- CheckCfg("interval", ref interval);
- SaveConfig();
- checkusers();
- }
- #endregion
- #region Plugin
- private void checkusers()
- {
- _mySqlConnection = _mySql.OpenDb(adres, port, db, login, passworld, this);
- timer.Repeat(interval, 0, () =>
- {
- Puts("########### ### ###########");
- Puts("#### SPRAWDZANIE RANG ####");
- Puts("========= +++ =========");
- #if RUST
- var Online = BasePlayer.activePlayerList as List<BasePlayer>;
- foreach (BasePlayer player in Online)
- {
- string nick = player.displayName;
- string steamid = player.UserIDString;
- #else
- foreach (var pair in GameManager.Instance.GetSessions())
- {
- var tplayer = pair.Value;
- string nick = tplayer.Name;
- string steamid = tplayer.SteamId.ToString();
- #endif
- string[] plgroups = permission.GetUserGroups(steamid);
- int grcount = plgroups.Count() - 1;
- var sql = Core.Database.Sql.Builder.Append(@"SELECT `yes`, `ranga`, `data` FROM sklep WHERE steamid=" + steamid + " and serwer='" + server + "';");
- _mySql.Query(sql, _mySqlConnection, list =>
- {
- DateTime dateNow = DateTime.Now;
- if (list == null)
- {
- Puts("44421" + nick);
- return;
- }
- int yaa = 0;
- for (int ii = 0; ii <= grcount; ii++)
- {
- foreach (var entry in list)
- {
- if ((plgroups[ii].ToLower() == entry["ranga"].ToString().ToLower()) && (plgroups[ii].ToLower() != "default"))
- {
- yaa = 1;
- }
- }
- if ((yaa == 0) && (plgroups[ii].ToLower() != "default"))
- {
- rmrank(steamid, plgroups[ii], nick);
- }
- }
- foreach (var entry in list)
- {
- DateTime dateSQL = DateTime.ParseExact(entry["data"].ToString(), "MM/dd/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); //konwert daty z serwera
- if (!IsHaveGroup(steamid, entry["ranga"].ToString()) && entry["ranga"].ToString().ToLower() != "default" && dateSQL >= dateNow)
- {
- addrank(steamid, entry["ranga"].ToString(), nick);
- }
- else if (IsHaveGroup(steamid, entry["ranga"].ToString()) && entry["ranga"].ToString().ToLower() != "default" && dateSQL <= dateNow)
- {
- rmrank(steamid, entry["ranga"].ToString(), nick);
- }
- }
- });
- }
- Puts("########### ### ###########");
- });
- }
- #endregion
- void addrank(string steamid, string ranga, string nick)
- {
- if (!IsHaveGroup(steamid, ranga))
- {
- permission.AddUserGroup(steamid, ranga);
- var added = Core.Database.Sql.Builder.Append(@"update sklep set yes=1 where yes=0 and ranga='" + ranga + "' and steamid=" + steamid + " and serwer='" + server + "';");
- _mySql.Insert(added, _mySqlConnection);
- Puts("Nadano Rangę " + ranga + " graczowi " + nick);
- }
- else
- {
- Puts(nick + " już ma " + ranga);
- }
- }
- void rmrank(string steamid, string ranga, string nick)
- {
- if (IsHaveGroup(steamid, ranga))
- {
- permission.RemoveUserGroup(steamid, ranga);
- Puts("Zabrano Rangę " + ranga + " graczowi " + nick);
- }
- else
- {
- Puts(nick + " nie ma " + ranga);
- }
- }
- bool IsHaveGroup(string steamid, string ranga) => permission.UserHasGroup(steamid, ranga);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement