C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System.Text.RegularExpressions;
using System.Collections.Generic;
using Newtonsoft.Json;
using System.Linq;
using System;
using UnityEngine;
using Oxide.Core;
using Oxide.Core.Configuration;
using Oxide.Core.Plugins;
namespace Oxide.Plugins {
[Info("Grant", "anfunny", "2.1.3")]
public class Grant : RustPlugin {
private static GrantData CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS;
private class GrantData {
public Dictionary<string, Dictionary<string, long>> Group = new Dictionary<string, Dictionary<string, long>>();
public Dictionary<string, Dictionary<string, long>> Permission = new Dictionary<string, Dictionary<string, long>>();
}
private void Init() {
SHJIFTUHZTTXGHCAQUFKNXKTWRZIUIPQUCHIENVQTXTZ();
LoadData();
}
private void OnServerInitialized() => timer.Once(3.6f, ()=> WOPVIXBZLFWFZDOFWGPXJJTAVFFVPKAJFOCJDFLIJNZV());
private void WOPVIXBZLFWFZDOFWGPXJJTAVFFVPKAJFOCJDFLIJNZV() {
YJYAQSVIYZCRLEEFXGBIRZOQSBCDUMMKIVULMFIUYWQBNLB();
if (HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU.ULKQACMYXAVIVUTKCGZKRJFNKBYXTATGKMKAKHATOCYFEE) YBHUNTDZVIHOQSNMMSIPJTTSYHKVINDHAAFSESWO();
SaveData();
timer.Once(60f, ()=> WOPVIXBZLFWFZDOFWGPXJJTAVFFVPKAJFOCJDFLIJNZV());
}
private bool CBQZXCZOGCMVPADSFJBFNZKBFBRVHOWKXMSDOWRHAUZLP(string TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF) => permission.PermissionExists(TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF, null);
private bool OEHPEDXQZCRPTVLDHSGBXCHZEJSTETAYLSMMNRKTMHNQM(string group) => permission.GroupExists(group);
private bool CWVXMGFNPMWILULDLGCSDBJZPPHNPPPRMEGVYGGTTYCAPEGPI(BasePlayer player, string userID, string TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF, DateTime WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP) {
if (CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission.ContainsKey(userID)) {
var HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU = CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission[userID];
if (HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU.ContainsKey(TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF)) {
if (!permission.UserHasPermission(userID, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF)) permission.GrantUserPermission(userID, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF, null);
HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU[TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF] += (long)Math.Round((WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP - DateTime.Now).TotalSeconds);
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(player, $"Игроку \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" продлена привилегия \"{TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF}\" в сумме до \"{REQGTHEYWLQFICXSDNNVULGKHGZWBZWWZUHUSVCCG(HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU[TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF] - ToEpochTime(DateTime.Now))}\"");
}
else {
if (!CBQZXCZOGCMVPADSFJBFNZKBFBRVHOWKXMSDOWRHAUZLP(TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF)) return false;
if (!HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU.SWJYEXZFFBHVLREMNYIQFTZIDWCFLUYBWBAVGANHRIAYPWL) {
if (permission.UserHasPermission(userID, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF)) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, $"Игрок \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" уже имеет привилегию \"{TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF}\" в качестве постоянной");
return true;
}
}
permission.GrantUserPermission(userID, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF, null);
HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU.Add(TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF, ToEpochTime(WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP));
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(player, $"Игроку \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" выдана привилегия \"{TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF}\" на \"{REQGTHEYWLQFICXSDNNVULGKHGZWBZWWZUHUSVCCG(HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU[TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF] - ToEpochTime(DateTime.Now))}\"");
}
}
else {
if (!CBQZXCZOGCMVPADSFJBFNZKBFBRVHOWKXMSDOWRHAUZLP(TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF)) return false;
if (!HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU.SWJYEXZFFBHVLREMNYIQFTZIDWCFLUYBWBAVGANHRIAYPWL) {
if (permission.UserHasPermission(userID, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF)) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, $"Игрок \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" уже имеет привилегию \"{TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF}\" в качестве постоянной");
return true;
}
}
CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission.Add(userID, new Dictionary<string, long>());
CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group.Add(userID, new Dictionary<string, long>());
var HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU = CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission[userID];
permission.GrantUserPermission(userID, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF, null);
HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU.Add(TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF, ToEpochTime(WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP));
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(player, $"Игроку \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" выдана привилегия \"{TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF}\" на \"{REQGTHEYWLQFICXSDNNVULGKHGZWBZWWZUHUSVCCG(HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU[TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF] - ToEpochTime(DateTime.Now))}\"");
}
SaveData();
return true;
}
private bool WGOTWBMWHWYRYZXFVGOPFFZIZFZIJLJSFFTIDTIFJBZ(BasePlayer player, string userID, string group, DateTime WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP) {
if (CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group.ContainsKey(userID)) {
var KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD = CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group[userID];
if (KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD.ContainsKey(group)) {
if (!permission.UserHasGroup(userID, group)) permission.AddUserGroup(userID, group);
KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD[group] += (long)Math.Round((WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP - DateTime.Now).TotalSeconds);
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(player, $"Игроку \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" продлено пребывание в группе \"{group}\" в сумме до \"{REQGTHEYWLQFICXSDNNVULGKHGZWBZWWZUHUSVCCG(KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD[group] - ToEpochTime(DateTime.Now))}\"");
}
else {
if (!OEHPEDXQZCRPTVLDHSGBXCHZEJSTETAYLSMMNRKTMHNQM(group)) return false;
if (!HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU.SWJYEXZFFBHVLREMNYIQFTZIDWCFLUYBWBAVGANHRIAYPWL) {
if (permission.UserHasGroup(userID, group)) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, $"Игрок \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" уже входит в группу \"{group}\" на постоянной основе");
return true;
}
}
permission.AddUserGroup(userID, group);
KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD.Add(group, ToEpochTime(WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP));
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(player, $"Игрок \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" добавлен в группу \"{group}\" на \"{REQGTHEYWLQFICXSDNNVULGKHGZWBZWWZUHUSVCCG(KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD[group] - ToEpochTime(DateTime.Now))}\"");
}
}
else {
if (!OEHPEDXQZCRPTVLDHSGBXCHZEJSTETAYLSMMNRKTMHNQM(group)) return false;
if (!HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU.SWJYEXZFFBHVLREMNYIQFTZIDWCFLUYBWBAVGANHRIAYPWL) {
if (permission.UserHasGroup(userID, group)) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, $"Игрок \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" уже входит в группу \"{group}\" на постоянной основе");
return true;
}
}
CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group.Add(userID, new Dictionary<string, long>());
CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission.Add(userID, new Dictionary<string, long>());
var KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD = CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group[userID];
permission.AddUserGroup(userID, group);
KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD.Add(group, ToEpochTime(WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP));
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(player, $"Игрок \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" добавлен в группу \"{group}\" на \"{REQGTHEYWLQFICXSDNNVULGKHGZWBZWWZUHUSVCCG(KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD[group] - ToEpochTime(DateTime.Now))}\"");
}
SaveData();
return true;
}
private void VBZCDJIZBTDRGGTRCEMWNGMSGOCCYJFDFQNYFWFZCJR(BasePlayer player, string userID, string TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF, bool TPMAKAIDMZDLGLZSXQHVBKPKQBTUGMUZYDWMOCLY = true) {
if (CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission.ContainsKey(userID)) {
var HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU = CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission[userID];
if (HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU.ContainsKey(TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF)) {
HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU.Remove(TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF);
if (TPMAKAIDMZDLGLZSXQHVBKPKQBTUGMUZYDWMOCLY) SaveData();
if (permission.UserHasPermission(userID, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF)) {
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(player, $"У игрока \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" была снята привилегия \"{TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF}\"");
permission.RevokeUserPermission(userID, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF);
return;
}
}
}
if (HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU.IENYORKELXBMQOGSZZFVTKEISNKOTTSPYSFQNFZWSXIZXYOIS) {
if (permission.UserHasPermission(userID, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF)) {
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(player, $"У игрока \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" была снята привилегия \"{TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF}\"");
permission.RevokeUserPermission(userID, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF);
return;
}
}
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, $"У игрока \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" нет привилегии \"{TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF}\"");
}
private void CCBXZRDFODVOOGWOHGBSNZLQSVLFYNUEPAQDMFCHFAPC(BasePlayer player, string userID, string group, bool TPMAKAIDMZDLGLZSXQHVBKPKQBTUGMUZYDWMOCLY = true) {
if (CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group.ContainsKey(userID)) {
var KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD = CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group[userID];
if (KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD.ContainsKey(group)) {
KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD.Remove(group);
if (TPMAKAIDMZDLGLZSXQHVBKPKQBTUGMUZYDWMOCLY) SaveData();
if (permission.UserHasGroup(userID, group)) {
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(player, $"Игрок \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" был исключён из группы \"{group}\"");
permission.RemoveUserGroup(userID, group);
return;
}
}
}
if (HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU.IENYORKELXBMQOGSZZFVTKEISNKOTTSPYSFQNFZWSXIZXYOIS) {
if (permission.UserHasGroup(userID, group)) {
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(player, $"Игрок \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" был исключён из группы \"{group}\"");
permission.RemoveUserGroup(userID, group);
return;
}
}
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, $"Игрок \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\" не состоял в группе \"{group}\"");
}
private void YJYAQSVIYZCRLEEFXGBIRZOQSBCDUMMKIVULMFIUYWQBNLB() {
var TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ = ToEpochTime(DateTime.Now);
foreach (var pair in CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission.ToDictionary(x=> x.Key, x=> x.Value)) foreach (var TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF in pair.Value.ToDictionary(x=> x.Key, x=> x.Value)) if (TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF.Value - TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ <= 0) VBZCDJIZBTDRGGTRCEMWNGMSGOCCYJFDFQNYFWFZCJR(null, pair.Key, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF.Key, false);
foreach (var pair in CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group.ToDictionary(x=> x.Key, x=> x.Value)) foreach (var group in pair.Value.ToDictionary(x=> x.Key, x=> x.Value)) if (group.Value - TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ <= 0) CCBXZRDFODVOOGWOHGBSNZLQSVLFYNUEPAQDMFCHFAPC(null, pair.Key, group.Key, false);
}
private void YBHUNTDZVIHOQSNMMSIPJTTSYHKVINDHAAFSESWO() {
foreach (var pair in CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission) foreach (var TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF in pair.Value) if (!permission.UserHasPermission(pair.Key, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF.Key) && CBQZXCZOGCMVPADSFJBFNZKBFBRVHOWKXMSDOWRHAUZLP(TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF.Key)) {
permission.GrantUserPermission(pair.Key, TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF.Key, null);
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(null, $"Игроку \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(pair.Key)} ({pair.Key})\" была восстановлена привилегия \"{TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF.Key}\"");
}
foreach (var pair in CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group) foreach (var group in pair.Value) if (!permission.UserHasGroup(pair.Key, group.Key) && OEHPEDXQZCRPTVLDHSGBXCHZEJSTETAYLSMMNRKTMHNQM(group.Key)) {
permission.AddUserGroup(pair.Key, group.Key);
ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(null, $"Игроку \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(pair.Key)} ({pair.Key})\" была восстановлена группа \"{group.Key}\"");
}
}
[ConsoleCommand("revoke.permission")]
private void VQEXTEFIDOUDLREIPVGIIQHFAOPMVIUVTWOCPUFCEMEYIDO(ConsoleSystem.Arg WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP) {
var player = WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP?.Player();
if (player != null && !player.IsAdmin) {
PrintToConsole(player, "У вас нет прав использовать эту команду.");
return;
}
if (WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP?.Args?.Length != 2) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, "Синтаксис: revoke.permission <name|steamid> <permission>");
return;
}
var userID = WOUYCANBIAUQPODIANSTRGWZEKTIRWBTFMKXQRSNQMJQ(WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP.Args[0], player);
if (string.IsNullOrEmpty(userID)) return;
var permission = WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP.Args[1].ToLower();
VBZCDJIZBTDRGGTRCEMWNGMSGOCCYJFDFQNYFWFZCJR(player, userID, permission);
}
[ConsoleCommand("grant.permission")]
private void AKPWQFKEIYXEPSMVTYJPDCSUQDEVLJWWAGMLSYFNMJT(ConsoleSystem.Arg WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP) {
var player = WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP?.Player();
if (player != null && !player.IsAdmin) {
PrintToConsole(player, "У вас нет прав использовать эту команду.");
return;
}
if (WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP?.Args?.Length != 3) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, "Синтаксис: grant.permission <name|steamid> <permission> <time Ex: 1d12h30m>");
return;
}
var userID = WOUYCANBIAUQPODIANSTRGWZEKTIRWBTFMKXQRSNQMJQ(WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP.Args[0], player);
if (string.IsNullOrEmpty(userID)) return;
var permission = WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP.Args[1].ToLower();
DateTime WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP;
if (!USRBSXROHKPGWUJVDWAMVSPTIVGNPNEMWMFNSHXHTVHIDQRFB(WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP.Args[2], out WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP)) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, "Неверный формат времени: Пример: 1d12h30m | d = дней, h = часов, m = минут");
return;
}
WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP = WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP.AddSeconds(3);
if (!CWVXMGFNPMWILULDLGCSDBJZPPHNPPPRMEGVYGGTTYCAPEGPI(player, userID, permission, WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP)) FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, $"Привилегия \"{permission}\" не существует.");
}
[ConsoleCommand("revoke.group")]
private void XANLZJEJUZFYRUFMBPTZCBEJGBCVTVCTICXQQSVCEMBAAO(ConsoleSystem.Arg WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP) {
var player = WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP?.Player();
if (player != null && !player.IsAdmin) {
PrintToConsole(player, "У вас нет прав использовать эту команду.");
return;
}
if (WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP?.Args?.Length != 2) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, "Синтаксис: revoke.group <name|steamid> <group>");
return;
}
var userID = WOUYCANBIAUQPODIANSTRGWZEKTIRWBTFMKXQRSNQMJQ(WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP.Args[0], player);
if (string.IsNullOrEmpty(userID)) return;
var group = WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP.Args[1].ToLower();
CCBXZRDFODVOOGWOHGBSNZLQSVLFYNUEPAQDMFCHFAPC(player, userID, group);
}
[ConsoleCommand("grant.group")]
private void YSSMXQUNVVEFXGJQZWLPPWPWJTQVQZDISIEDBJFDOOCUMMX(ConsoleSystem.Arg WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP) {
var player = WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP?.Player();
if (player != null && !player.IsAdmin) {
PrintToConsole(player, "У вас нет прав использовать эту команду.");
return;
}
if (WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP?.Args?.Length != 3) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, "Синтаксис: grant.group <name|steamid> <group> <time Ex: 1d12h30m>");
return;
}
var userID = WOUYCANBIAUQPODIANSTRGWZEKTIRWBTFMKXQRSNQMJQ(WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP.Args[0], player);
if (string.IsNullOrEmpty(userID)) return;
var group = WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP.Args[1].ToLower();
DateTime WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP;
if (!USRBSXROHKPGWUJVDWAMVSPTIVGNPNEMWMFNSHXHTVHIDQRFB(WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP.Args[2], out WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP)) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, "Неверный формат времени: Пример: 1d12h30m | d = дней, h = часов, m = минут");
return;
}
WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP = WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP.AddSeconds(3);
if (!WGOTWBMWHWYRYZXFVGOPFFZIZFZIJLJSFFTIDTIFJBZ(player, userID, group, WVMJZJRMXWYWSISWWHIVYGPQWUFDOCZTNKQYVKWZIMOHKXP)) FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, $"Группа \"{group}\" не существует.");
}
[ConsoleCommand("grant.info")]
private void VVCEOYECCWCEZYXWRVMPBFPQRIBAUVJWVUAUXZUTDCAEHBDQ(ConsoleSystem.Arg WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP) {
var player = WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP?.Player();
if (player != null && !player.IsAdmin) {
PrintToConsole(player, "У вас нет прав использовать эту команду.");
return;
}
if (WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP?.Args?.Length != 1) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, "Синтаксис: grant.info <name|steamid>");
return;
}
var userID = WOUYCANBIAUQPODIANSTRGWZEKTIRWBTFMKXQRSNQMJQ(WBNFMMRGPXOJKYJZCKJHOXZEENCONDUFIFFJCEDOCNQPGP.Args[0], player);
if (string.IsNullOrEmpty(userID)) return;
var TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ = ToEpochTime(DateTime.Now);
var PCPAGNUPFWNFEOYVWFJISUALKJNLRIGYEGNLMYMZQASZXRVTO = "нет";
if (CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission.ContainsKey(userID)) {
var HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU = CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission[userID];
PCPAGNUPFWNFEOYVWFJISUALKJNLRIGYEGNLMYMZQASZXRVTO = "";
foreach(var TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF in HUCFIYVXGPGNAEOIVXNCMNEALGQBDIKFPCXXUQVU.Where(x=> x.Value - TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ > 0).OrderBy(x=> x.Key)) PCPAGNUPFWNFEOYVWFJISUALKJNLRIGYEGNLMYMZQASZXRVTO += $"\"{TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF.Key}\" осталось \"{REQGTHEYWLQFICXSDNNVULGKHGZWBZWWZUHUSVCCG(TYUPKCBTBMGUCXCTNVWAOHZQDDQBBDVZYANMJXTCGHUERF.Value - TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ)}\", ";
PCPAGNUPFWNFEOYVWFJISUALKJNLRIGYEGNLMYMZQASZXRVTO = PCPAGNUPFWNFEOYVWFJISUALKJNLRIGYEGNLMYMZQASZXRVTO.Trim(',', ' ');
if (string.IsNullOrEmpty(PCPAGNUPFWNFEOYVWFJISUALKJNLRIGYEGNLMYMZQASZXRVTO)) PCPAGNUPFWNFEOYVWFJISUALKJNLRIGYEGNLMYMZQASZXRVTO = "нет";
}
var KFOGGUBEPXAIXXQOAXAMIYSJSRBANTNTXYXBKYATKHIPZHD = "нет";
if (CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group.ContainsKey(userID)) {
var KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD = CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group[userID];
KFOGGUBEPXAIXXQOAXAMIYSJSRBANTNTXYXBKYATKHIPZHD = "";
foreach(var group in KBXWVRBQEGODQQTQBTBITTXFBXYHQNEBTDCMGEQPPLZBWBZLD.Where(x=> x.Value - TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ > 0).OrderBy(x=> x.Key)) KFOGGUBEPXAIXXQOAXAMIYSJSRBANTNTXYXBKYATKHIPZHD += $"\"{group.Key}\" осталось \"{REQGTHEYWLQFICXSDNNVULGKHGZWBZWWZUHUSVCCG(group.Value - TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ)}\", ";
KFOGGUBEPXAIXXQOAXAMIYSJSRBANTNTXYXBKYATKHIPZHD = KFOGGUBEPXAIXXQOAXAMIYSJSRBANTNTXYXBKYATKHIPZHD.Trim(',', ' ');
if (string.IsNullOrEmpty(KFOGGUBEPXAIXXQOAXAMIYSJSRBANTNTXYXBKYATKHIPZHD)) KFOGGUBEPXAIXXQOAXAMIYSJSRBANTNTXYXBKYATKHIPZHD = "нет";
}
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, $"Данные игрока \"{XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(userID)} ({userID})\":\nГруппы: {KFOGGUBEPXAIXXQOAXAMIYSJSRBANTNTXYXBKYATKHIPZHD}\nПривилегии: {PCPAGNUPFWNFEOYVWFJISUALKJNLRIGYEGNLMYMZQASZXRVTO}");
}
private void FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(BasePlayer player, string FNMMRBRCYBIBZJCSMCIAFSAXXHUFAHKYOZXBBQCDRCHHT) {
if (player != null) PrintToConsole(player, FNMMRBRCYBIBZJCSMCIAFSAXXHUFAHKYOZXBBQCDRCHHT);
else Puts(FNMMRBRCYBIBZJCSMCIAFSAXXHUFAHKYOZXBBQCDRCHHT);
}
private static long ToEpochTime(DateTime EEZVDNXOHMMPOKHMBRRKMZMBRVZFJCLSDUCPFFDWA) {
var DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY = EEZVDNXOHMMPOKHMBRRKMZMBRVZFJCLSDUCPFFDWA.ToLocalTime();
var JIRYTBKMMEOOTARWJGKZZOECWHBAPDKKOFREBPZVNKOFJLZK = DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY.Ticks - new DateTime(1970, 1, 1, 0, 0, 0, 0).Ticks;
var LFSWDWUEPBMAKWJUEAOJMVUHOMOAYTKHRKEXRNKJWAMONV = JIRYTBKMMEOOTARWJGKZZOECWHBAPDKKOFREBPZVNKOFJLZK / TimeSpan.TicksPerSecond;
return LFSWDWUEPBMAKWJUEAOJMVUHOMOAYTKHRKEXRNKJWAMONV;
}
private static bool USRBSXROHKPGWUJVDWAMVSPTIVGNPNEMWMFNSHXHTVHIDQRFB(string RKOLCSWFAPQIQESXDIOSFEBTLTHRGWNUJMHCMGTG, out DateTime DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY) {
int minutes = 0;
int hours = 0;
int days = 0;
Match m = new Regex(@"(\d+?)m", RegexOptions.IgnoreCase).Match(RKOLCSWFAPQIQESXDIOSFEBTLTHRGWNUJMHCMGTG);
Match h = new Regex(@"(\d+?)h", RegexOptions.IgnoreCase).Match(RKOLCSWFAPQIQESXDIOSFEBTLTHRGWNUJMHCMGTG);
Match d = new Regex(@"(\d+?)d", RegexOptions.IgnoreCase).Match(RKOLCSWFAPQIQESXDIOSFEBTLTHRGWNUJMHCMGTG);
if (m.Success) minutes = Convert.ToInt32(m.Groups[1].ToString());
if (h.Success) hours = Convert.ToInt32(h.Groups[1].ToString());
if (d.Success) days = Convert.ToInt32(d.Groups[1].ToString());
RKOLCSWFAPQIQESXDIOSFEBTLTHRGWNUJMHCMGTG = RKOLCSWFAPQIQESXDIOSFEBTLTHRGWNUJMHCMGTG.Replace(minutes.ToString() + "m", string.Empty);
RKOLCSWFAPQIQESXDIOSFEBTLTHRGWNUJMHCMGTG = RKOLCSWFAPQIQESXDIOSFEBTLTHRGWNUJMHCMGTG.Replace(hours.ToString() + "h", string.Empty);
RKOLCSWFAPQIQESXDIOSFEBTLTHRGWNUJMHCMGTG = RKOLCSWFAPQIQESXDIOSFEBTLTHRGWNUJMHCMGTG.Replace(days.ToString() + "d", string.Empty);
if (!string.IsNullOrEmpty(RKOLCSWFAPQIQESXDIOSFEBTLTHRGWNUJMHCMGTG) || (!m.Success && !h.Success && !d.Success)) {
DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY = default(DateTime);
return false;
}
DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY = DateTime.Now + new TimeSpan(days, hours, minutes, 0);
return true;
}
private static bool IQNKEBDXTXREYTFCKJPWCVYTSZLHQREALXFOZMIDKVNAPO(int SMBSUTRGKVDEXTGVBBHWEGBYTJDEITBKBIKJXLCWUQELGWFM, int[] VNHMBQLKDZKPMYQTSDOIWYQYKCOBPSWERTMGTYZSYYUM) {
foreach (int elem in VNHMBQLKDZKPMYQTSDOIWYQYKCOBPSWERTMGTYZSYYUM) if (elem==SMBSUTRGKVDEXTGVBBHWEGBYTJDEITBKBIKJXLCWUQELGWFM) return true;
return false;
}
private static string NCAGIPFPMSUREQWHBSQSBORDXAMMHIXDEDXEQLWLGITVEVEM(int days) {
if (IQNKEBDXTXREYTFCKJPWCVYTSZLHQREALXFOZMIDKVNAPO(days, (new int[] {
1, 21
}
))) return days.ToString()+" день";
else if (IQNKEBDXTXREYTFCKJPWCVYTSZLHQREALXFOZMIDKVNAPO(days, (new int[] {
2, 3, 4, 22, 23, 24
}
))) return days.ToString()+" дня";
else return days.ToString()+" дней";
}
private static string OLHZWVZKXIHDTHDURNATRQQWFMSVVYCVZYTWQDHIXUSDO(int hours) {
if (IQNKEBDXTXREYTFCKJPWCVYTSZLHQREALXFOZMIDKVNAPO(hours, (new int[] {
1, 21
}
))) return hours.ToString()+" час";
else if (IQNKEBDXTXREYTFCKJPWCVYTSZLHQREALXFOZMIDKVNAPO(hours, (new int[] {
2, 3, 4, 22, 23, 24
}
))) return hours.ToString()+" часа";
else return hours.ToString()+" часов";
}
private static string MBPBNIETWXVKTJCEOYGMDVNHDNFSVXYMIXZRGULTRG(int minutes) {
if (IQNKEBDXTXREYTFCKJPWCVYTSZLHQREALXFOZMIDKVNAPO(minutes, (new int[] {
1, 21, 31, 41, 51
}
))) return minutes.ToString()+" минута";
else if (IQNKEBDXTXREYTFCKJPWCVYTSZLHQREALXFOZMIDKVNAPO(minutes, (new int[] {
2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54
}
))) return minutes.ToString()+" минуты";
else return minutes.ToString()+" минут";
}
private static string WAFKYGSFTWCDRNHXZDLXZYICWKKYUNMUXSQGYDGL(int seconds) {
if (IQNKEBDXTXREYTFCKJPWCVYTSZLHQREALXFOZMIDKVNAPO(seconds, (new int[] {
1, 21, 31, 41, 51
}
))) return seconds.ToString()+" секунда";
else if (IQNKEBDXTXREYTFCKJPWCVYTSZLHQREALXFOZMIDKVNAPO(seconds, (new int[] {
2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54
}
))) return seconds.ToString()+" секунды";
else return seconds.ToString()+" секунд";
}
private static string REQGTHEYWLQFICXSDNNVULGKHGZWBZWWZUHUSVCCG(long time) {
TimeSpan OELELKAEQLLHRHUFVREIASMCQPFNMIGTSJAWNOYXR = TimeSpan.FromSeconds(time);
int hours = OELELKAEQLLHRHUFVREIASMCQPFNMIGTSJAWNOYXR.Hours;
int minutes = OELELKAEQLLHRHUFVREIASMCQPFNMIGTSJAWNOYXR.Minutes;
int seconds = OELELKAEQLLHRHUFVREIASMCQPFNMIGTSJAWNOYXR.Seconds;
int days = Mathf.FloorToInt((float)OELELKAEQLLHRHUFVREIASMCQPFNMIGTSJAWNOYXR.Days);
string s = "";
int NMFFTBCUQWINCWSIOWFNRIEROHGXRHSHRTEZXKVDLS = 0;
if (days > 0) {
s += NCAGIPFPMSUREQWHBSQSBORDXAMMHIXDEDXEQLWLGITVEVEM(days) + " ";
NMFFTBCUQWINCWSIOWFNRIEROHGXRHSHRTEZXKVDLS++;
}
if (hours > 0 || NMFFTBCUQWINCWSIOWFNRIEROHGXRHSHRTEZXKVDLS == 1) {
if (hours > 0) {
s += OLHZWVZKXIHDTHDURNATRQQWFMSVVYCVZYTWQDHIXUSDO(hours) + " ";
if (++NMFFTBCUQWINCWSIOWFNRIEROHGXRHSHRTEZXKVDLS==2) return s.Trim(' ');
}
else return s.Trim(' ');
}
if (minutes > 0 || NMFFTBCUQWINCWSIOWFNRIEROHGXRHSHRTEZXKVDLS == 1) {
if (minutes > 0) {
s += MBPBNIETWXVKTJCEOYGMDVNHDNFSVXYMIXZRGULTRG(minutes) + " ";
if (++NMFFTBCUQWINCWSIOWFNRIEROHGXRHSHRTEZXKVDLS==2) return s.Trim(' ');
}
else return s.Trim(' ');
}
if (seconds > 0 || NMFFTBCUQWINCWSIOWFNRIEROHGXRHSHRTEZXKVDLS == 1) {
if (seconds > 0) {
s += WAFKYGSFTWCDRNHXZDLXZYICWKKYUNMUXSQGYDGL(seconds) + " ";
if (++NMFFTBCUQWINCWSIOWFNRIEROHGXRHSHRTEZXKVDLS==2) return s.Trim(' ');
}
else return s.Trim(' ');
}
return s.Trim(' ');
}
private string XCWOOQTOVPTQIFXFYNIHXXPUFOVCZHLKPUNEOSRIDMDGDJMBW(string userID) {
var JLFGDDFZCRDOFHNRLUECIEBWJSTKEACCZQVGJBDUMIQPNF = permission.GetUserData(userID);
return JLFGDDFZCRDOFHNRLUECIEBWJSTKEACCZQVGJBDUMIQPNF.LastSeenNickname;
}
private string WOUYCANBIAUQPODIANSTRGWZEKTIRWBTFMKXQRSNQMJQ(string HHRNRNTQDNXXIBZCJVKCGYSMKAUEWKXEDHDVWNYFCONGOJ, BasePlayer player) {
if (MXPCUJZJDVQRVTSGEKMYBKCDGRIUFCFWGLRMEFWMCJCRT<ulong>(HHRNRNTQDNXXIBZCJVKCGYSMKAUEWKXEDHDVWNYFCONGOJ) && HHRNRNTQDNXXIBZCJVKCGYSMKAUEWKXEDHDVWNYFCONGOJ.StartsWith("7656119") && HHRNRNTQDNXXIBZCJVKCGYSMKAUEWKXEDHDVWNYFCONGOJ.Length == 17) return HHRNRNTQDNXXIBZCJVKCGYSMKAUEWKXEDHDVWNYFCONGOJ;
var RJTKIHPIEJJXLKUVBPBPOMGHKRJQAOMJDTBBKQTUKIQXAERJS = new List<BasePlayer>();
foreach (BasePlayer current in BasePlayer.activePlayerList) {
if (current.displayName.ToLower() == HHRNRNTQDNXXIBZCJVKCGYSMKAUEWKXEDHDVWNYFCONGOJ.ToLower()) return current.UserIDString;
if (current.displayName.ToLower().Contains(HHRNRNTQDNXXIBZCJVKCGYSMKAUEWKXEDHDVWNYFCONGOJ.ToLower())) RJTKIHPIEJJXLKUVBPBPOMGHKRJQAOMJDTBBKQTUKIQXAERJS.Add(current);
}
switch (RJTKIHPIEJJXLKUVBPBPOMGHKRJQAOMJDTBBKQTUKIQXAERJS.Count) {
case 0 : FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, $"Не найден игрок с именем \"{HHRNRNTQDNXXIBZCJVKCGYSMKAUEWKXEDHDVWNYFCONGOJ}\"");
break;
case 1 : return RJTKIHPIEJJXLKUVBPBPOMGHKRJQAOMJDTBBKQTUKIQXAERJS[0].UserIDString;
default : string[] OZLQJFCLZQXZIQXZTRJTKLWHFGVJHGAAYNAMYNKVYZQCX = (from current in RJTKIHPIEJJXLKUVBPBPOMGHKRJQAOMJDTBBKQTUKIQXAERJS select current.displayName).ToArray();
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, "Найдено несколько игроков с похожим именем: \n" + string.Join(", ", OZLQJFCLZQXZIQXZTRJTKLWHFGVJHGAAYNAMYNKVYZQCX));
break;
}
return null;
}
private static bool MXPCUJZJDVQRVTSGEKMYBKCDGRIUFCFWGLRMEFWMCJCRT<T>(object s) {
try {
var AAZAKZAYCCDELDKTETQXAUQLBGHNUKUTJUGVJHVBZZKX = (T)Convert.ChangeType(s, typeof(T));
return true;
}
catch {
return false;
}
}
private static List<LogNfo> TCHLEVXMAKFJOYERNERHJUQWOKXXPXBKSBHDABPPXGI = new List<LogNfo>();
private class LogNfo {
public string WAQODJJLJOFDRSPTTPTTBYDFVXFARKMXAPXDFVUUUWUG;
public string DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY;
public string ALUIRJMUSQZZLKWUXZXDIVRNQAQLOCJDLGVDPOFFLGR;
public LogNfo(string WAQODJJLJOFDRSPTTPTTBYDFVXFARKMXAPXDFVUUUWUG, string DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY, string ALUIRJMUSQZZLKWUXZXDIVRNQAQLOCJDLGVDPOFFLGR) {
this.WAQODJJLJOFDRSPTTPTTBYDFVXFARKMXAPXDFVUUUWUG = WAQODJJLJOFDRSPTTPTTBYDFVXFARKMXAPXDFVUUUWUG;
this.DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY = DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY;
this.ALUIRJMUSQZZLKWUXZXDIVRNQAQLOCJDLGVDPOFFLGR = ALUIRJMUSQZZLKWUXZXDIVRNQAQLOCJDLGVDPOFFLGR;
}
}
private string VXAHMBXRMCVLWDAEEAPULJCFBZOAVRHLKBWKUXQEZO() => "["+DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss")+"] ";
private bool PRTJTLYFCBZULVUFMMWVUUJBVGPJGJLVWKMOIQVOXMFJLGKOZ(string WAQODJJLJOFDRSPTTPTTBYDFVXFARKMXAPXDFVUUUWUG, string DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY, string ALUIRJMUSQZZLKWUXZXDIVRNQAQLOCJDLGVDPOFFLGR) {
try {
LogToFile(WAQODJJLJOFDRSPTTPTTBYDFVXFARKMXAPXDFVUUUWUG, DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY + ALUIRJMUSQZZLKWUXZXDIVRNQAQLOCJDLGVDPOFFLGR, this, false);
string CISQEURYIFBFUHRRTAGQGWNEOTFJTSSCDPKIIAGT = WAQODJJLJOFDRSPTTPTTBYDFVXFARKMXAPXDFVUUUWUG;
string LUGFQJIXOMKABVGVNBLPIEQNYBEWJJSTMGUBHYYJWLF = ALUIRJMUSQZZLKWUXZXDIVRNQAQLOCJDLGVDPOFFLGR;
}
catch {
return false;
}
return true;
}
private void ERCSEVHSOMVOYSQDXBJGXWRIYHOZPOWBJOFTTEFRGPCISIN(BasePlayer player, string ALUIRJMUSQZZLKWUXZXDIVRNQAQLOCJDLGVDPOFFLGR) {
FCQZIUPGMMFXEHHMFIFYDYRBTMZFKJQFLJOSSXNZKNLNOW(player, ALUIRJMUSQZZLKWUXZXDIVRNQAQLOCJDLGVDPOFFLGR);
TCHLEVXMAKFJOYERNERHJUQWOKXXPXBKSBHDABPPXGI.Add(new LogNfo("info", VXAHMBXRMCVLWDAEEAPULJCFBZOAVRHLKBWKUXQEZO(), ALUIRJMUSQZZLKWUXZXDIVRNQAQLOCJDLGVDPOFFLGR));
while(TCHLEVXMAKFJOYERNERHJUQWOKXXPXBKSBHDABPPXGI.Count > 0) {
if (PRTJTLYFCBZULVUFMMWVUUJBVGPJGJLVWKMOIQVOXMFJLGKOZ(TCHLEVXMAKFJOYERNERHJUQWOKXXPXBKSBHDABPPXGI[0].WAQODJJLJOFDRSPTTPTTBYDFVXFARKMXAPXDFVUUUWUG, TCHLEVXMAKFJOYERNERHJUQWOKXXPXBKSBHDABPPXGI[0].DBVCUEYXHBVIIUMJVZILEZDCVYDXPLXOHJBDFRROJUY, TCHLEVXMAKFJOYERNERHJUQWOKXXPXBKSBHDABPPXGI[0].ALUIRJMUSQZZLKWUXZXDIVRNQAQLOCJDLGVDPOFFLGR)) TCHLEVXMAKFJOYERNERHJUQWOKXXPXBKSBHDABPPXGI.RemoveAt(0);
else break;
}
}
private static ConfigData HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU;
private class ConfigData {
[JsonProperty(PropertyName = "Разрешать снимать с игрока постоянную привилегию или группу, которой нет в БД плагина, командами плагина")]
public bool IENYORKELXBMQOGSZZFVTKEISNKOTTSPYSFQNFZWSXIZXYOIS;
[JsonProperty(PropertyName = "Разрешать перезаписывать постоянные привилегии и группы игрока временными, при их выдаче командами плагина")]
public bool SWJYEXZFFBHVLREMNYIQFTZIDWCFLUYBWBAVGANHRIAYPWL;
[JsonProperty(PropertyName = "Следить и восстанавливать привилегии и группы игрокам согласно записям БД плагина")]
public bool ULKQACMYXAVIVUTKCGZKRJFNKBYXTATGKMKAKHATOCYFEE;
}
private void SHJIFTUHZTTXGHCAQUFKNXKTWRZIUIPQUCHIENVQTXTZ() => HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU = Config.ReadObject<ConfigData>();
protected override void LoadDefaultConfig() {
HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU = new ConfigData {
IENYORKELXBMQOGSZZFVTKEISNKOTTSPYSFQNFZWSXIZXYOIS = false, ULKQACMYXAVIVUTKCGZKRJFNKBYXTATGKMKAKHATOCYFEE = false
}
;
SaveConfig(HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU);
timer.Once(0.1f, ()=>SaveConfig(HBCTENUYVDBHDSGOELOETQNVAEOOCBTWYKFWZLSVPU));
}
private void SaveConfig(ConfigData JGMNUUQUPJYWKSGDITYBHDCVLOXVYYFEXOLQTNXQWDLFZH) => Config.WriteObject(JGMNUUQUPJYWKSGDITYBHDCVLOXVYYFEXOLQTNXQWDLFZH, true);
private void LoadData() => CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS = Interface.GetMod().DataFileSystem.ReadObject<GrantData>("GrantData");
private void SaveData() => Interface.GetMod().DataFileSystem.WriteObject("GrantData", CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS);
/* получить список привилегий игрока в формате Dictionary<название привилегии, оставшиеся время действия в секундах> метод возвращает null, если у игрока нет привилегий */
private Dictionary<string, int> GetPermissions(ulong userID) {
var TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ = ToEpochTime(DateTime.Now);
var userIDString = userID.ToString();
if (CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission.ContainsKey(userIDString)) return CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Permission[userIDString].Where(x=> x.Value - TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ > 0).ToDictionary(x=> x.Key, x=> (int)(x.Value - TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ));
return null;
}
/* получить список групп игрока в формате Dictionary<название группы, оставшиеся время действия в секундах> метод возвращает null, если у игрока нет групп */
private Dictionary<string, int> GetGroups(ulong userID) {
var TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ = ToEpochTime(DateTime.Now);
var userIDString = userID.ToString();
if (CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group.ContainsKey(userIDString)) return CNQLCVFJGERBGXUVRDTZWGPKVWIEERWVETUIIMCISFFMCLQS.Group[userIDString].Where(x=> x.Value - TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ > 0).ToDictionary(x=> x.Key, x=> (int)(x.Value - TWULEQDRVXTTZQCMKMOHJWDMTIUWJZYMDJUIGHYLIPJ));
return null;
}
}
}