C#:
using System;
using System.Collections.Generic;
using Oxide.Core;
using Oxide.Core.Plugins;
using UnityEngine;
using System.Linq;
using Newtonsoft.Json;
namespace Oxide.Plugins {
[Info("GatherPlus", "Nimant", "1.0.10")]
class GatherPlus : RustPlugin {
private Dictionary<ulong, List<string>> nbhrOgQsRRCRiFPZL = new Dictionary<ulong, List<string>>();
private bool YubyraOygYBPlPCQWBGeZolnbT = false;
private void Init() {
uUupCFJPSDCTQ();
var tRrsiygaBneRRBCEFWHbts = false;
if (xANunHtjymHnZbqC.yfVUMbVPZUIxRgLtFIcMTrUUdxxbDF == null) {
xANunHtjymHnZbqC.fBfttvRfaXLraBvTClqkjixCDe = 1f;
xANunHtjymHnZbqC.gVxosyvFFpufhiIOEWQSwr = 1f;
xANunHtjymHnZbqC.yfVUMbVPZUIxRgLtFIcMTrUUdxxbDF = new Dictionary<string, float>() {
{
"High Quality Metal Ore", 1f
}
, {
"Metal Fragments", 1f
}
, {
"Metal Ore", 1f
}
, {
"Stones", 1f
}
, {
"Sulfur Ore", 1f
}
}
;
tRrsiygaBneRRBCEFWHbts = true;
}
if (tRrsiygaBneRRBCEFWHbts) TYrihtiPPSSNTPvEL(xANunHtjymHnZbqC);
LoadDefaultMessages();
foreach(var cFulCyCQdEFVk in xANunHtjymHnZbqC.gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc.Keys) permission.RegisterPermission(cFulCyCQdEFVk.ToLower(), this);
}
private void OnPlayerConnected(BasePlayer cuzkBJbXXMnVVMjcfJhyr) => CcJVEbLORcazCnFamSaO(cuzkBJbXXMnVVMjcfJhyr.UserIDString);
private void OnPlayerDisconnected(BasePlayer cuzkBJbXXMnVVMjcfJhyr, string NNzvMFFWkDzIgnUFPhhnopzeKNoPM) => nbhrOgQsRRCRiFPZL.Remove(cuzkBJbXXMnVVMjcfJhyr.userID);
private void OnServerInitialized() {
QFGoONRBaj(true);
foreach (var cuzkBJbXXMnVVMjcfJhyr in BasePlayer.activePlayerList) OnPlayerConnected(cuzkBJbXXMnVVMjcfJhyr);
}
private bool? OnDispenserGather(ResourceDispenser QFuOzsydWggrcybM, BaseEntity pGaJwoOVrSbMzpLhBjWWwJDO, Item ryLZezpuTMfDKgnMyTJqksw) {
if (pGaJwoOVrSbMzpLhBjWWwJDO == null || ryLZezpuTMfDKgnMyTJqksw == null) return null;
BasePlayer cuzkBJbXXMnVVMjcfJhyr = pGaJwoOVrSbMzpLhBjWWwJDO.ToPlayer();
if (cuzkBJbXXMnVVMjcfJhyr == null) return null;
var oldAmount = ryLZezpuTMfDKgnMyTJqksw.amount;
var HuvRgmpIHDhRPCHzgwZhe = jCGHSAOnjxgHz(QFuOzsydWggrcybM, cuzkBJbXXMnVVMjcfJhyr, ryLZezpuTMfDKgnMyTJqksw);
DRnfOgxGJSv(ryLZezpuTMfDKgnMyTJqksw);
var BxqSGYiMlZikstxbw = AhSwmEREvNTaCFlfIpHaVBPYRJXbEL(cuzkBJbXXMnVVMjcfJhyr);
var uBxlDbbRGNz = CFUEciBCNYO(cuzkBJbXXMnVVMjcfJhyr.userID);
if (uBxlDbbRGNz < 0) return null;
var OccMsDwixUrwLVsmqEpOPyfjGBqYnq = FXhGhhchoXBeKHfh(ryLZezpuTMfDKgnMyTJqksw, uBxlDbbRGNz * xANunHtjymHnZbqC.pblyhiYDSCUPU[ryLZezpuTMfDKgnMyTJqksw.info.displayName.english] * (BxqSGYiMlZikstxbw != null ? xANunHtjymHnZbqC.RhHWNHjxcBBRIhCN[BxqSGYiMlZikstxbw.info.displayName.english] : 1f), SjHSGHhqDR() * HuvRgmpIHDhRPCHzgwZhe);
if (!OccMsDwixUrwLVsmqEpOPyfjGBqYnq) return false;
Interface.CallHook("GP_OnDispenserGather", QFuOzsydWggrcybM, pGaJwoOVrSbMzpLhBjWWwJDO, ryLZezpuTMfDKgnMyTJqksw, oldAmount);
return null;
}
private void OnDispenserBonus(ResourceDispenser QFuOzsydWggrcybM, BasePlayer cuzkBJbXXMnVVMjcfJhyr, Item ryLZezpuTMfDKgnMyTJqksw) {
if (cuzkBJbXXMnVVMjcfJhyr == null || ryLZezpuTMfDKgnMyTJqksw == null) return;
var oldAmount = ryLZezpuTMfDKgnMyTJqksw.amount;
var HuvRgmpIHDhRPCHzgwZhe = jCGHSAOnjxgHz(QFuOzsydWggrcybM, cuzkBJbXXMnVVMjcfJhyr, ryLZezpuTMfDKgnMyTJqksw);
DRnfOgxGJSv(ryLZezpuTMfDKgnMyTJqksw);
var BxqSGYiMlZikstxbw = AhSwmEREvNTaCFlfIpHaVBPYRJXbEL(cuzkBJbXXMnVVMjcfJhyr);
var uBxlDbbRGNz = CFUEciBCNYO(cuzkBJbXXMnVVMjcfJhyr.userID);
if (uBxlDbbRGNz < 0) return;
var OccMsDwixUrwLVsmqEpOPyfjGBqYnq = FXhGhhchoXBeKHfh(ryLZezpuTMfDKgnMyTJqksw, uBxlDbbRGNz * xANunHtjymHnZbqC.pblyhiYDSCUPU[ryLZezpuTMfDKgnMyTJqksw.info.displayName.english] * (BxqSGYiMlZikstxbw != null ? xANunHtjymHnZbqC.RhHWNHjxcBBRIhCN[BxqSGYiMlZikstxbw.info.displayName.english] : 1f), SjHSGHhqDR() * HuvRgmpIHDhRPCHzgwZhe);
if (!OccMsDwixUrwLVsmqEpOPyfjGBqYnq) return;
Interface.CallHook("GP_OnDispenserBonus", QFuOzsydWggrcybM, cuzkBJbXXMnVVMjcfJhyr, ryLZezpuTMfDKgnMyTJqksw, oldAmount);
}
private bool? OnCollectiblePickup(CollectibleEntity pGaJwoOVrSbMzpLhBjWWwJDO, BasePlayer cuzkBJbXXMnVVMjcfJhyr, bool eat) {
if (cuzkBJbXXMnVVMjcfJhyr == null || pGaJwoOVrSbMzpLhBjWWwJDO == null || pGaJwoOVrSbMzpLhBjWWwJDO.itemList == null) return null;
var zmDWKFxXzmiMiPdsWRPzHVRKEt = pGaJwoOVrSbMzpLhBjWWwJDO.itemList;
for (var i = 0; i < zmDWKFxXzmiMiPdsWRPzHVRKEt.Length; i++) {
var itemAmount = zmDWKFxXzmiMiPdsWRPzHVRKEt[i];
int pZBqwXjdEYpNrUtDHG = (int)itemAmount.amount;
var ryLZezpuTMfDKgnMyTJqksw = ItemManager.Create(itemAmount.itemDef, pZBqwXjdEYpNrUtDHG);
if (ryLZezpuTMfDKgnMyTJqksw != null) {
if (!cuzkBJbXXMnVVMjcfJhyr) ryLZezpuTMfDKgnMyTJqksw.Drop(pGaJwoOVrSbMzpLhBjWWwJDO.transform.position + (Vector3.up * 0.5f), Vector3.up, new Quaternion());
else {
var oldAmount = ryLZezpuTMfDKgnMyTJqksw.amount;
oQmyAghslglVWYAXGdXsPGqZQhPX(ryLZezpuTMfDKgnMyTJqksw);
var uBxlDbbRGNz = TbGvfjOjUMEBwnFcpMTxg(cuzkBJbXXMnVVMjcfJhyr.userID);
if (uBxlDbbRGNz < 0) {
cuzkBJbXXMnVVMjcfJhyr.GiveItem(ryLZezpuTMfDKgnMyTJqksw, BaseEntity.GiveItemReason.ResourceHarvested);
continue;
}
var OccMsDwixUrwLVsmqEpOPyfjGBqYnq = FXhGhhchoXBeKHfh(ryLZezpuTMfDKgnMyTJqksw, uBxlDbbRGNz * xANunHtjymHnZbqC.jBMXkUejLmg[ryLZezpuTMfDKgnMyTJqksw.info.displayName.english]);
if (!OccMsDwixUrwLVsmqEpOPyfjGBqYnq) continue;
Interface.CallHook("GP_OnCollectiblePickup", ryLZezpuTMfDKgnMyTJqksw, cuzkBJbXXMnVVMjcfJhyr, oldAmount);
if (eat && ryLZezpuTMfDKgnMyTJqksw.info.category == ItemCategory.Food && ryLZezpuTMfDKgnMyTJqksw.info.GetComponent<ItemModConsume>() != null) {
var needGive = ryLZezpuTMfDKgnMyTJqksw.amount > 1;
var component = ryLZezpuTMfDKgnMyTJqksw.info.GetComponent<ItemModConsume>();
component.DoAction(ryLZezpuTMfDKgnMyTJqksw, cuzkBJbXXMnVVMjcfJhyr);
if (needGive) cuzkBJbXXMnVVMjcfJhyr.GiveItem(ryLZezpuTMfDKgnMyTJqksw, BaseEntity.GiveItemReason.ResourceHarvested);
}
else cuzkBJbXXMnVVMjcfJhyr.GiveItem(ryLZezpuTMfDKgnMyTJqksw, BaseEntity.GiveItemReason.ResourceHarvested);
}
}
}
pGaJwoOVrSbMzpLhBjWWwJDO.itemList = null;
if (pGaJwoOVrSbMzpLhBjWWwJDO.pickupEffect.isValid) Effect.server.Run(pGaJwoOVrSbMzpLhBjWWwJDO.pickupEffect.resourcePath, pGaJwoOVrSbMzpLhBjWWwJDO.transform.position, pGaJwoOVrSbMzpLhBjWWwJDO.transform.up, null, false);
var randomItemDispenser = PrefabAttribute.server.Find<RandomItemDispenser>(pGaJwoOVrSbMzpLhBjWWwJDO.prefabID);
if (randomItemDispenser != null) randomItemDispenser.DistributeItems(cuzkBJbXXMnVVMjcfJhyr, pGaJwoOVrSbMzpLhBjWWwJDO.transform.position);
pGaJwoOVrSbMzpLhBjWWwJDO.Kill(BaseNetworkable.DestroyMode.None);
return false;
}
private void OnGrowableGathered(GrowableEntity nAvVAdsnKSKqKIi, Item ryLZezpuTMfDKgnMyTJqksw, BasePlayer cuzkBJbXXMnVVMjcfJhyr) {
if (nAvVAdsnKSKqKIi == null || cuzkBJbXXMnVVMjcfJhyr == null || ryLZezpuTMfDKgnMyTJqksw == null) return;
var oldAmount = ryLZezpuTMfDKgnMyTJqksw.amount;
oQmyAghslglVWYAXGdXsPGqZQhPX(ryLZezpuTMfDKgnMyTJqksw);
var uBxlDbbRGNz = TbGvfjOjUMEBwnFcpMTxg(cuzkBJbXXMnVVMjcfJhyr.userID);
if (uBxlDbbRGNz < 0) return;
var OccMsDwixUrwLVsmqEpOPyfjGBqYnq = FXhGhhchoXBeKHfh(ryLZezpuTMfDKgnMyTJqksw, uBxlDbbRGNz * xANunHtjymHnZbqC.jBMXkUejLmg[ryLZezpuTMfDKgnMyTJqksw.info.displayName.english]);
if (!OccMsDwixUrwLVsmqEpOPyfjGBqYnq) return;
Interface.CallHook("GP_OnGrowableGathered", nAvVAdsnKSKqKIi, ryLZezpuTMfDKgnMyTJqksw, cuzkBJbXXMnVVMjcfJhyr, oldAmount);
}
private void OnQuarryGather(MiningQuarry GLRTXibGLHtrFlCJ, Item ryLZezpuTMfDKgnMyTJqksw) {
if (GLRTXibGLHtrFlCJ == null || ryLZezpuTMfDKgnMyTJqksw == null) return;
var oldAmount = ryLZezpuTMfDKgnMyTJqksw.amount;
TqaMjCyaMV(ryLZezpuTMfDKgnMyTJqksw);
var uBxlDbbRGNz = pWSdfoXSCDWfxSpGGMZVCxaOBVDgm(GLRTXibGLHtrFlCJ.OwnerID);
if (uBxlDbbRGNz < 0) return;
var OccMsDwixUrwLVsmqEpOPyfjGBqYnq = FXhGhhchoXBeKHfh(ryLZezpuTMfDKgnMyTJqksw, uBxlDbbRGNz * xANunHtjymHnZbqC.ZipSiwImTrWLSvoqocdhsmHBYto[ryLZezpuTMfDKgnMyTJqksw.info.displayName.english]);
if (!OccMsDwixUrwLVsmqEpOPyfjGBqYnq) return;
Interface.CallHook("GP_OnQuarryGather", GLRTXibGLHtrFlCJ, ryLZezpuTMfDKgnMyTJqksw, oldAmount);
}
private void OnExcavatorGather(ExcavatorArm aSdShJefWXRSQdcSuiez, Item ryLZezpuTMfDKgnMyTJqksw) {
if (aSdShJefWXRSQdcSuiez == null || ryLZezpuTMfDKgnMyTJqksw == null) return;
var oldAmount = ryLZezpuTMfDKgnMyTJqksw.amount;
NXAalWAuGgrvRfEqicifoCrRH(ryLZezpuTMfDKgnMyTJqksw);
var uBxlDbbRGNz = GetExcavRate();
if (uBxlDbbRGNz < 0) return;
var OccMsDwixUrwLVsmqEpOPyfjGBqYnq = FXhGhhchoXBeKHfh(ryLZezpuTMfDKgnMyTJqksw, uBxlDbbRGNz * xANunHtjymHnZbqC.yfVUMbVPZUIxRgLtFIcMTrUUdxxbDF[ryLZezpuTMfDKgnMyTJqksw.info.displayName.english]);
if (!OccMsDwixUrwLVsmqEpOPyfjGBqYnq) return;
Interface.CallHook("GP_OnExcavatorGather", aSdShJefWXRSQdcSuiez, ryLZezpuTMfDKgnMyTJqksw, oldAmount);
}
private void OnUserPermissionGranted(string OYxRXHhQtUezSovGSmiOPv, string cFulCyCQdEFVk) {
if (xANunHtjymHnZbqC.gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc.Where(x=> x.Key.ToLower() == cFulCyCQdEFVk.ToLower()).Count() > 0) timer.Once(0.1f, ()=> CcJVEbLORcazCnFamSaO(OYxRXHhQtUezSovGSmiOPv));
}
private void OnUserPermissionRevoked(string OYxRXHhQtUezSovGSmiOPv, string cFulCyCQdEFVk) {
if (xANunHtjymHnZbqC.gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc.Where(x=> x.Key.ToLower() == cFulCyCQdEFVk.ToLower()).Count() > 0) timer.Once(0.1f, ()=> CcJVEbLORcazCnFamSaO(OYxRXHhQtUezSovGSmiOPv));
}
private void OnUserGroupAdded(string OYxRXHhQtUezSovGSmiOPv, string qNUtONCPfKIzpBysnbb) => timer.Once(0.1f, ()=> CcJVEbLORcazCnFamSaO(OYxRXHhQtUezSovGSmiOPv));
private void OnUserGroupRemoved(string OYxRXHhQtUezSovGSmiOPv, string qNUtONCPfKIzpBysnbb) => timer.Once(0.1f, ()=> CcJVEbLORcazCnFamSaO(OYxRXHhQtUezSovGSmiOPv));
private void OnGroupPermissionGranted(string qNUtONCPfKIzpBysnbb, string cFulCyCQdEFVk) {
if (xANunHtjymHnZbqC.gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc.Where(x=> x.Key.ToLower() == cFulCyCQdEFVk.ToLower()).Count() > 0) timer.Once(0.1f, ()=> jgUaEGdBcjgrxlLB(qNUtONCPfKIzpBysnbb));
}
private void OnGroupPermissionRevoked(string qNUtONCPfKIzpBysnbb, string cFulCyCQdEFVk) {
if (xANunHtjymHnZbqC.gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc.Where(x=> x.Key.ToLower() == cFulCyCQdEFVk.ToLower()).Count() > 0) timer.Once(0.1f, ()=> jgUaEGdBcjgrxlLB(qNUtONCPfKIzpBysnbb));
}
private void DRnfOgxGJSv(Item ryLZezpuTMfDKgnMyTJqksw) {
if (!xANunHtjymHnZbqC.pblyhiYDSCUPU.ContainsKey(ryLZezpuTMfDKgnMyTJqksw.info.displayName.english)) {
xANunHtjymHnZbqC.pblyhiYDSCUPU.Add(ryLZezpuTMfDKgnMyTJqksw.info.displayName.english, 1f);
TYrihtiPPSSNTPvEL(xANunHtjymHnZbqC);
PrintWarning(string.Format("В конфигурационный файл, в раздел добываемых ресурсов добавлен новый ресурс '{0}'", ryLZezpuTMfDKgnMyTJqksw.info.displayName.english));
}
}
private Item AhSwmEREvNTaCFlfIpHaVBPYRJXbEL(BasePlayer cuzkBJbXXMnVVMjcfJhyr) {
if (cuzkBJbXXMnVVMjcfJhyr == null) return null;
var ryLZezpuTMfDKgnMyTJqksw = cuzkBJbXXMnVVMjcfJhyr.GetActiveItem();
if (ryLZezpuTMfDKgnMyTJqksw == null) return null;
if (xANunHtjymHnZbqC.RhHWNHjxcBBRIhCN == null) xANunHtjymHnZbqC.RhHWNHjxcBBRIhCN = new Dictionary<string, float>();
if (!xANunHtjymHnZbqC.RhHWNHjxcBBRIhCN.ContainsKey(ryLZezpuTMfDKgnMyTJqksw.info.displayName.english)) {
xANunHtjymHnZbqC.RhHWNHjxcBBRIhCN.Add(ryLZezpuTMfDKgnMyTJqksw.info.displayName.english, 1f);
TYrihtiPPSSNTPvEL(xANunHtjymHnZbqC);
PrintWarning(string.Format("В конфигурационный файл, в раздел инструментов добычи добавлен новый ресурс '{0}'", ryLZezpuTMfDKgnMyTJqksw.info.displayName.english));
}
return ryLZezpuTMfDKgnMyTJqksw;
}
private void oQmyAghslglVWYAXGdXsPGqZQhPX(Item ryLZezpuTMfDKgnMyTJqksw) {
if (!xANunHtjymHnZbqC.jBMXkUejLmg.ContainsKey(ryLZezpuTMfDKgnMyTJqksw.info.displayName.english)) {
xANunHtjymHnZbqC.jBMXkUejLmg.Add(ryLZezpuTMfDKgnMyTJqksw.info.displayName.english, 1f);
TYrihtiPPSSNTPvEL(xANunHtjymHnZbqC);
PrintWarning(string.Format("В конфигурационный файл, в раздел поднимаемых ресурсов добавлен новый ресурс '{0}'", ryLZezpuTMfDKgnMyTJqksw.info.displayName.english));
}
}
private void TqaMjCyaMV(Item ryLZezpuTMfDKgnMyTJqksw) {
if (!xANunHtjymHnZbqC.ZipSiwImTrWLSvoqocdhsmHBYto.ContainsKey(ryLZezpuTMfDKgnMyTJqksw.info.displayName.english)) {
xANunHtjymHnZbqC.ZipSiwImTrWLSvoqocdhsmHBYto.Add(ryLZezpuTMfDKgnMyTJqksw.info.displayName.english, 1f);
TYrihtiPPSSNTPvEL(xANunHtjymHnZbqC);
PrintWarning(string.Format("В конфигурационный файл, в раздел добываемых ресурсов в карьере добавлен новый ресурс '{0}'", ryLZezpuTMfDKgnMyTJqksw.info.displayName.english));
}
}
private void NXAalWAuGgrvRfEqicifoCrRH(Item ryLZezpuTMfDKgnMyTJqksw) {
if (!xANunHtjymHnZbqC.yfVUMbVPZUIxRgLtFIcMTrUUdxxbDF.ContainsKey(ryLZezpuTMfDKgnMyTJqksw.info.displayName.english)) {
xANunHtjymHnZbqC.yfVUMbVPZUIxRgLtFIcMTrUUdxxbDF.Add(ryLZezpuTMfDKgnMyTJqksw.info.displayName.english, 1f);
TYrihtiPPSSNTPvEL(xANunHtjymHnZbqC);
PrintWarning(string.Format("В конфигурационный файл, в раздел добываемых ресурсов экскаватором добавлен новый ресурс '{0}'", ryLZezpuTMfDKgnMyTJqksw.info.displayName.english));
}
}
private bool FXhGhhchoXBeKHfh(Item ryLZezpuTMfDKgnMyTJqksw, float uBxlDbbRGNz, float teaAmount = 0f) {
if (uBxlDbbRGNz <= 0) {
ryLZezpuTMfDKgnMyTJqksw.RemoveFromContainer();
ryLZezpuTMfDKgnMyTJqksw.Remove(0f);
return false;
}
else {
var qLRuJnEbyqDBBU = (int)Math.Round(uBxlDbbRGNz * ryLZezpuTMfDKgnMyTJqksw.amount + teaAmount);
if (qLRuJnEbyqDBBU <= 0) {
ryLZezpuTMfDKgnMyTJqksw.RemoveFromContainer();
ryLZezpuTMfDKgnMyTJqksw.Remove(0f);
return false;
}
else ryLZezpuTMfDKgnMyTJqksw.amount = qLRuJnEbyqDBBU;
}
return true;
}
private float SjHSGHhqDR() => (xANunHtjymHnZbqC.CkEoBTgcHMq && YubyraOygYBPlPCQWBGeZolnbT) ? xANunHtjymHnZbqC.NtllKCpUWDAlLpHUkEWQvpdHelBy : xANunHtjymHnZbqC.VJSUWwbCVQzSLBzhRBH;
private int jCGHSAOnjxgHz(ResourceDispenser QFuOzsydWggrcybM, BasePlayer cuzkBJbXXMnVVMjcfJhyr, Item ryLZezpuTMfDKgnMyTJqksw) {
int HuvRgmpIHDhRPCHzgwZhe = 0;
if (SjHSGHhqDR() > 0) {
var OccMsDwixUrwLVsmqEpOPyfjGBqYnq = false;
Modifier.ModifierType modifierType = 0;
if (QFuOzsydWggrcybM.gatherType == ResourceDispenser.GatherType.Tree) modifierType = Modifier.ModifierType.Wood_Yield;
else if (QFuOzsydWggrcybM.gatherType == ResourceDispenser.GatherType.Ore) modifierType = Modifier.ModifierType.Ore_Yield;
else OccMsDwixUrwLVsmqEpOPyfjGBqYnq = true;
if (!OccMsDwixUrwLVsmqEpOPyfjGBqYnq) {
float value = 1f + cuzkBJbXXMnVVMjcfJhyr.modifiers.GetValue(modifierType, 0f);
if (value > 1f) {
HuvRgmpIHDhRPCHzgwZhe = ryLZezpuTMfDKgnMyTJqksw.amount - (int)Math.Round(ryLZezpuTMfDKgnMyTJqksw.amount / value);
int amount = ryLZezpuTMfDKgnMyTJqksw.amount - HuvRgmpIHDhRPCHzgwZhe;
ryLZezpuTMfDKgnMyTJqksw.amount = amount > 0 ? amount : 1;
}
}
}
return HuvRgmpIHDhRPCHzgwZhe;
}
private float CFUEciBCNYO(ulong eaODDfxtDjM) {
float NbPOqLtEGUYmnbMm = (xANunHtjymHnZbqC.CkEoBTgcHMq && YubyraOygYBPlPCQWBGeZolnbT) ? xANunHtjymHnZbqC.UveqsCURUvItigMgNYZYLfD : xANunHtjymHnZbqC.CKhpyGNQuVKkdPEDsVDBXGvXtD;
if (!nbhrOgQsRRCRiFPZL.ContainsKey(eaODDfxtDjM)) return NbPOqLtEGUYmnbMm;
else {
float uBxlDbbRGNz = -1;
foreach(var TjwBYPyFKqNCvgQFpaujtaWPwBv in xANunHtjymHnZbqC.gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc.Where(x=> nbhrOgQsRRCRiFPZL[eaODDfxtDjM].Contains(x.Key.ToLower()))) {
if (xANunHtjymHnZbqC.CkEoBTgcHMq && YubyraOygYBPlPCQWBGeZolnbT) {
if (uBxlDbbRGNz < TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.UveqsCURUvItigMgNYZYLfD) uBxlDbbRGNz = TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.UveqsCURUvItigMgNYZYLfD;
}
else {
if (uBxlDbbRGNz < TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.CKhpyGNQuVKkdPEDsVDBXGvXtD) uBxlDbbRGNz = TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.CKhpyGNQuVKkdPEDsVDBXGvXtD;
}
}
return uBxlDbbRGNz >= 0 ? uBxlDbbRGNz : NbPOqLtEGUYmnbMm;
}
return NbPOqLtEGUYmnbMm;
}
private float TbGvfjOjUMEBwnFcpMTxg(ulong eaODDfxtDjM) {
float NbPOqLtEGUYmnbMm = (xANunHtjymHnZbqC.CkEoBTgcHMq && YubyraOygYBPlPCQWBGeZolnbT) ? xANunHtjymHnZbqC.wxiodkdiwbBA : xANunHtjymHnZbqC.zgWbSuTVPJdZCy;
if (!nbhrOgQsRRCRiFPZL.ContainsKey(eaODDfxtDjM)) return NbPOqLtEGUYmnbMm;
else {
float uBxlDbbRGNz = -1;
foreach(var TjwBYPyFKqNCvgQFpaujtaWPwBv in xANunHtjymHnZbqC.gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc.Where(x=> nbhrOgQsRRCRiFPZL[eaODDfxtDjM].Contains(x.Key.ToLower()))) {
if (xANunHtjymHnZbqC.CkEoBTgcHMq && YubyraOygYBPlPCQWBGeZolnbT) {
if (uBxlDbbRGNz < TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.wxiodkdiwbBA) uBxlDbbRGNz = TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.wxiodkdiwbBA;
}
else {
if (uBxlDbbRGNz < TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.zgWbSuTVPJdZCy) uBxlDbbRGNz = TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.zgWbSuTVPJdZCy;
}
}
return uBxlDbbRGNz >= 0 ? uBxlDbbRGNz : NbPOqLtEGUYmnbMm;
}
return NbPOqLtEGUYmnbMm;
}
private float pWSdfoXSCDWfxSpGGMZVCxaOBVDgm(ulong eaODDfxtDjM) {
float NbPOqLtEGUYmnbMm = (xANunHtjymHnZbqC.CkEoBTgcHMq && YubyraOygYBPlPCQWBGeZolnbT) ? xANunHtjymHnZbqC.UXqSNaGLjYrL : xANunHtjymHnZbqC.YgxKGHSpuhYtRwOhdkiFAwadLh;
if (eaODDfxtDjM == 0) return NbPOqLtEGUYmnbMm;
List<string> cjKmGkPFhGGGa = new List<string>();
foreach(var SPIzQlDjLyKUQFlfNurCqpVDWUCN in xANunHtjymHnZbqC.gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc.Keys) if (permission.UserHasPermission(eaODDfxtDjM.ToString(), SPIzQlDjLyKUQFlfNurCqpVDWUCN.ToLower())) cjKmGkPFhGGGa.Add(SPIzQlDjLyKUQFlfNurCqpVDWUCN.ToLower());
if (cjKmGkPFhGGGa.Count == 0) return NbPOqLtEGUYmnbMm;
float uBxlDbbRGNz = -1;
foreach(var TjwBYPyFKqNCvgQFpaujtaWPwBv in xANunHtjymHnZbqC.gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc.Where(x=> cjKmGkPFhGGGa.Contains(x.Key.ToLower()))) {
if (xANunHtjymHnZbqC.CkEoBTgcHMq && YubyraOygYBPlPCQWBGeZolnbT) {
if (uBxlDbbRGNz < TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.UXqSNaGLjYrL) uBxlDbbRGNz = TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.UXqSNaGLjYrL;
}
else {
if (uBxlDbbRGNz < TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.YgxKGHSpuhYtRwOhdkiFAwadLh) uBxlDbbRGNz = TjwBYPyFKqNCvgQFpaujtaWPwBv.Value.YgxKGHSpuhYtRwOhdkiFAwadLh;
}
}
return uBxlDbbRGNz >= 0 ? uBxlDbbRGNz : NbPOqLtEGUYmnbMm;
}
private float GetExcavRate() {
float NbPOqLtEGUYmnbMm = (xANunHtjymHnZbqC.CkEoBTgcHMq && YubyraOygYBPlPCQWBGeZolnbT) ? xANunHtjymHnZbqC.gVxosyvFFpufhiIOEWQSwr : xANunHtjymHnZbqC.fBfttvRfaXLraBvTClqkjixCDe;
return NbPOqLtEGUYmnbMm;
}
private void CcJVEbLORcazCnFamSaO(string userIdString) {
List<string> UtwmvtDynic = new List<string>();
var OccMsDwixUrwLVsmqEpOPyfjGBqYnq = "{DarkPluginsID}";
foreach(var SPIzQlDjLyKUQFlfNurCqpVDWUCN in xANunHtjymHnZbqC.gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc.Keys) if (permission.UserHasPermission(userIdString, SPIzQlDjLyKUQFlfNurCqpVDWUCN.ToLower())) UtwmvtDynic.Add(SPIzQlDjLyKUQFlfNurCqpVDWUCN.ToLower());
ulong eaODDfxtDjM = (ulong)Convert.ToInt64(userIdString);
if (UtwmvtDynic.Count == 0) {
if (nbhrOgQsRRCRiFPZL.ContainsKey(eaODDfxtDjM)) nbhrOgQsRRCRiFPZL.Remove(eaODDfxtDjM);
}
else {
if (!nbhrOgQsRRCRiFPZL.ContainsKey(eaODDfxtDjM)) nbhrOgQsRRCRiFPZL.Add(eaODDfxtDjM, UtwmvtDynic);
else nbhrOgQsRRCRiFPZL[eaODDfxtDjM] = UtwmvtDynic;
}
}
private void jgUaEGdBcjgrxlLB(string MGJnWIHePlIeUJOaVhQCHWVqjTQOkS) {
List<string> zrNynqrNJOiacvFcpIEi = permission.GetUsersInGroup(MGJnWIHePlIeUJOaVhQCHWVqjTQOkS).Select(x=>x.Substring(0, x.IndexOf(" "))).ToList();
foreach(var cuzkBJbXXMnVVMjcfJhyr in BasePlayer.activePlayerList.Where(x=> zrNynqrNJOiacvFcpIEi.Contains(x.UserIDString))) CcJVEbLORcazCnFamSaO(cuzkBJbXXMnVVMjcfJhyr.UserIDString);
}
private void QFGoONRBaj(bool IpoiIfUFBwTNACINY = false) {
var uvKjKrgnbvkPasr = TOD_Sky.Instance.Cycle.Hour;
bool pKnrdawfOIvgBoEBsBWAjRJT = YubyraOygYBPlPCQWBGeZolnbT;
if ((xANunHtjymHnZbqC.QjfnofjXflaNPNqbrt <= xANunHtjymHnZbqC.XnLodZqwzCPJAMzaN && uvKjKrgnbvkPasr >= xANunHtjymHnZbqC.QjfnofjXflaNPNqbrt && uvKjKrgnbvkPasr < xANunHtjymHnZbqC.XnLodZqwzCPJAMzaN) || (xANunHtjymHnZbqC.QjfnofjXflaNPNqbrt > xANunHtjymHnZbqC.XnLodZqwzCPJAMzaN && uvKjKrgnbvkPasr >= xANunHtjymHnZbqC.QjfnofjXflaNPNqbrt && uvKjKrgnbvkPasr < xANunHtjymHnZbqC.XnLodZqwzCPJAMzaN + 24) || (xANunHtjymHnZbqC.QjfnofjXflaNPNqbrt > xANunHtjymHnZbqC.XnLodZqwzCPJAMzaN && uvKjKrgnbvkPasr + 24 >= xANunHtjymHnZbqC.QjfnofjXflaNPNqbrt && uvKjKrgnbvkPasr < xANunHtjymHnZbqC.XnLodZqwzCPJAMzaN) ) YubyraOygYBPlPCQWBGeZolnbT = true;
else YubyraOygYBPlPCQWBGeZolnbT = false;
if (!IpoiIfUFBwTNACINY && pKnrdawfOIvgBoEBsBWAjRJT != YubyraOygYBPlPCQWBGeZolnbT) fpzlpKLUEGmXLbQfAEnDDhWemL();
timer.Once(3f, ()=>QFGoONRBaj());
}
private void fpzlpKLUEGmXLbQfAEnDDhWemL() {
if (xANunHtjymHnZbqC.vXJTdCVbRSkTuEvAH) {
foreach(var cuzkBJbXXMnVVMjcfJhyr in BasePlayer.activePlayerList) SendReply(cuzkBJbXXMnVVMjcfJhyr, string.Format(YubyraOygYBPlPCQWBGeZolnbT?qYsZIDlSlWGEMXaEPqs("INFO.NIGHT.START") : qYsZIDlSlWGEMXaEPqs("INFO.NIGHT.END"), CFUEciBCNYO(cuzkBJbXXMnVVMjcfJhyr.userID), TbGvfjOjUMEBwnFcpMTxg(cuzkBJbXXMnVVMjcfJhyr.userID), pWSdfoXSCDWfxSpGGMZVCxaOBVDgm(cuzkBJbXXMnVVMjcfJhyr.userID)));
}
}
private void LoadDefaultMessages() {
lang.RegisterMessages(new Dictionary<string, string> {
{
"INFO.NIGHT.START", "Наступает ночь\nРейты добываемых ресурсов: X{0}\nРейты поднимаемых ресурсов: X{1}\nРейты ресурсов в карьере: X{2}"
}
, {
"INFO.NIGHT.END", "Наступает день\nРейты добываемых ресурсов: X{0}\nРейты поднимаемых ресурсов: X{1}\nРейты ресурсов в карьере: X{2}"
}
}
, this);
}
private string qYsZIDlSlWGEMXaEPqs(string dbCLcwXKWPRUhFAMuJmEmiKSk, string PWLxgPooEczEgwTwewXxOXWtWNI = null) => lang.GetMessage(dbCLcwXKWPRUhFAMuJmEmiKSk, this, PWLxgPooEczEgwTwewXxOXWtWNI);
private static AmcEDDOwzFLJWYEZrwlV xANunHtjymHnZbqC;
private class KWtkwCAKdmqlgJnyojMFcKKyr {
[JsonProperty(PropertyName = "Общий рейт добываемых ресурсов")]
public float CKhpyGNQuVKkdPEDsVDBXGvXtD;
[JsonProperty(PropertyName = "Общий рейт добываемых ресурсов ночью")]
public float UveqsCURUvItigMgNYZYLfD;
[JsonProperty(PropertyName = "Общий рейт поднимаемых ресурсов")]
public float zgWbSuTVPJdZCy;
[JsonProperty(PropertyName = "Общий рейт поднимаемых ресурсов ночью")]
public float wxiodkdiwbBA;
[JsonProperty(PropertyName = "Общий рейт добываемых ресурсов в карьере")]
public float YgxKGHSpuhYtRwOhdkiFAwadLh;
[JsonProperty(PropertyName = "Общий рейт добываемых ресурсов в карьере ночью")]
public float UXqSNaGLjYrL;
}
private class AmcEDDOwzFLJWYEZrwlV {
[JsonProperty(PropertyName = "Общий рейт добываемых ресурсов")]
public float CKhpyGNQuVKkdPEDsVDBXGvXtD;
[JsonProperty(PropertyName = "Общий рейт добываемых ресурсов ночью")]
public float UveqsCURUvItigMgNYZYLfD;
[JsonProperty(PropertyName = "Стандартные рейты добываемых ресурсов")]
public Dictionary<string, float> pblyhiYDSCUPU;
[JsonProperty(PropertyName = "Стандартные рейты инструментов добычи")]
public Dictionary<string, float> RhHWNHjxcBBRIhCN;
[JsonProperty(PropertyName = "Общий рейт поднимаемых ресурсов")]
public float zgWbSuTVPJdZCy;
[JsonProperty(PropertyName = "Общий рейт поднимаемых ресурсов ночью")]
public float wxiodkdiwbBA;
[JsonProperty(PropertyName = "Стандартные рейты поднимаемых ресурсов")]
public Dictionary<string, float> jBMXkUejLmg;
[JsonProperty(PropertyName = "Общий рейт добываемых ресурсов в карьере")]
public float YgxKGHSpuhYtRwOhdkiFAwadLh;
[JsonProperty(PropertyName = "Общий рейт добываемых ресурсов в карьере ночью")]
public float UXqSNaGLjYrL;
[JsonProperty(PropertyName = "Стандартные рейты добываемых ресурсов в карьере")]
public Dictionary<string, float> ZipSiwImTrWLSvoqocdhsmHBYto;
[JsonProperty(PropertyName = "Общий рейт добываемых ресурсов экскаватором")]
public float fBfttvRfaXLraBvTClqkjixCDe;
[JsonProperty(PropertyName = "Общий рейт добываемых ресурсов экскаватором ночью")]
public float gVxosyvFFpufhiIOEWQSwr;
[JsonProperty(PropertyName = "Стандартные рейты добываемых ресурсов экскаватором")]
public Dictionary<string, float> yfVUMbVPZUIxRgLtFIcMTrUUdxxbDF;
[JsonProperty(PropertyName = "Общий рейт рудного и древесного чая")]
public float VJSUWwbCVQzSLBzhRBH;
[JsonProperty(PropertyName = "Общий рейт рудного и древесного чая ночью")]
public float NtllKCpUWDAlLpHUkEWQvpdHelBy;
[JsonProperty(PropertyName = "Включить разделение рейтов на ночной и дневной режим")]
public bool CkEoBTgcHMq;
[JsonProperty(PropertyName = "Час игрового времени с которого включается ночной режим")]
public int QjfnofjXflaNPNqbrt;
[JsonProperty(PropertyName = "Час игрового времени с которого выключается ночной режим")]
public int XnLodZqwzCPJAMzaN;
[JsonProperty(PropertyName = "Выводить оповещение в чат при смене ночного и дневного режима")]
public bool vXJTdCVbRSkTuEvAH;
[JsonProperty(PropertyName = "Изменение рейтов для игроков с привилегиями")]
public Dictionary<string, KWtkwCAKdmqlgJnyojMFcKKyr> gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc;
}
private void uUupCFJPSDCTQ() => xANunHtjymHnZbqC = Config.ReadObject<AmcEDDOwzFLJWYEZrwlV>();
protected override void LoadDefaultConfig() {
xANunHtjymHnZbqC = new AmcEDDOwzFLJWYEZrwlV {
CKhpyGNQuVKkdPEDsVDBXGvXtD = 1f, UveqsCURUvItigMgNYZYLfD = 1f, pblyhiYDSCUPU = new Dictionary<string, float>() {
{
"Animal Fat", 1f
}
, {
"Bear Meat", 1f
}
, {
"Bone Fragments", 1f
}
, {
"Cloth", 1f
}
, {
"High Quality Metal Ore", 1f
}
, {
"Human Skull", 1f
}
, {
"Leather", 1f
}
, {
"Metal Ore", 1f
}
, {
"Pork", 1f
}
, {
"Raw Bear Meat", 1f
}
, {
"Raw Chicken Breast", 1f
}
, {
"Raw Human Meat", 1f
}
, {
"Raw Wolf Meat", 1f
}
, {
"Stones", 1f
}
, {
"Sulfur Ore", 1f
}
, {
"Wolf Skull", 1f
}
, {
"Wood", 1f
}
}
, RhHWNHjxcBBRIhCN = new Dictionary<string, float>() {
{
"Bone Club", 1f
}
, {
"Candy Cane Club", 1f
}
, {
"Chainsaw", 1f
}
, {
"Hatchet", 1f
}
, {
"Pickaxe", 1f
}
, {
"Rock", 1f
}
, {
"Salvaged Axe", 1f
}
, {
"Salvaged Hammer", 1f
}
, {
"Salvaged Icepick", 1f
}
, {
"Stone Hatchet", 1f
}
, {
"Stone Pickaxe", 1f
}
, {
"Jackhammer", 1f
}
}
, zgWbSuTVPJdZCy = 1f, wxiodkdiwbBA = 1f, jBMXkUejLmg = new Dictionary<string, float>() {
{
"Metal Ore", 1f
}
, {
"Stones", 1f
}
, {
"Sulfur Ore", 1f
}
, {
"Wood", 1f
}
, {
"Hemp Seed", 1f
}
, {
"Corn Seed", 1f
}
, {
"Pumpkin Seed", 1f
}
, {
"Cloth", 1f
}
, {
"Pumpkin", 1f
}
, {
"Corn", 1f
}
}
, YgxKGHSpuhYtRwOhdkiFAwadLh = 1f, UXqSNaGLjYrL = 1f, ZipSiwImTrWLSvoqocdhsmHBYto = new Dictionary<string, float>() {
{
"High Quality Metal Ore", 1f
}
, {
"Metal Fragments", 1f
}
, {
"Metal Ore", 1f
}
, {
"Stones", 1f
}
, {
"Sulfur Ore", 1f
}
}
, fBfttvRfaXLraBvTClqkjixCDe = 1f, gVxosyvFFpufhiIOEWQSwr = 1f, yfVUMbVPZUIxRgLtFIcMTrUUdxxbDF = new Dictionary<string, float>() {
{
"High Quality Metal Ore", 1f
}
, {
"Metal Fragments", 1f
}
, {
"Metal Ore", 1f
}
, {
"Stones", 1f
}
, {
"Sulfur Ore", 1f
}
}
, VJSUWwbCVQzSLBzhRBH = 0f, NtllKCpUWDAlLpHUkEWQvpdHelBy = 0f, CkEoBTgcHMq = false, QjfnofjXflaNPNqbrt = 19, XnLodZqwzCPJAMzaN = 8, vXJTdCVbRSkTuEvAH = true, gbTBfQFPiEWkRRLGWuQYiNEzfrdeqc = new Dictionary<string, KWtkwCAKdmqlgJnyojMFcKKyr>() {
{
"gatherplus.vip", new KWtkwCAKdmqlgJnyojMFcKKyr() {
CKhpyGNQuVKkdPEDsVDBXGvXtD = 2f, UveqsCURUvItigMgNYZYLfD = 2f, zgWbSuTVPJdZCy = 2f, wxiodkdiwbBA = 2f, YgxKGHSpuhYtRwOhdkiFAwadLh = 2f, UXqSNaGLjYrL = 2f
}
}
, {
"gatherplus.premium", new KWtkwCAKdmqlgJnyojMFcKKyr() {
CKhpyGNQuVKkdPEDsVDBXGvXtD = 3f, UveqsCURUvItigMgNYZYLfD = 3f, zgWbSuTVPJdZCy = 3f, wxiodkdiwbBA = 3f, YgxKGHSpuhYtRwOhdkiFAwadLh = 3f, UXqSNaGLjYrL = 3f
}
}
}
}
;
TYrihtiPPSSNTPvEL(xANunHtjymHnZbqC);
timer.Once(0.1f, ()=> TYrihtiPPSSNTPvEL(xANunHtjymHnZbqC));
}
private void TYrihtiPPSSNTPvEL(AmcEDDOwzFLJWYEZrwlV lRYByLVEVPNbEVTjYxVGxhFhzuMrtM) => Config.WriteObject(lRYByLVEVPNbEVTjYxVGxhFhzuMrtM, true);
}
}