using Newtonsoft.Json; using Oxide.Core; using Oxide.Core.Plugins; using Oxide.Game.Rust.Cui; using Oxide.Core.Configuration; using Oxide.Core.Libraries.Covalence; using System; using System.IO; using System.Linq; using System.Collections.Generic; using UnityEngine; namespace Oxide.Plugins { [Info("WPOpen", "David", "0.0.1")] [Description("Plugin template with basics")] public class WPOpen : RustPlugin { [PluginReference] private Plugin WelcomePanel; private void OpenWelcomePanel(BasePlayer player) { WelcomePanel.CallHook("BaseUI", player); WelcomePanel.CallHook("Tab1", player); } private void SaveData() { if (_playerData != null) Interface.Oxide.DataFileSystem.WriteObject($"{Name}/PlayerData", _playerData); } private Dictionary _playerData; private class Data { public bool firstTime; } private void LoadPlayerData() { if (Interface.Oxide.DataFileSystem.ExistsDatafile($"{Name}/PlayerData")) { _playerData = Interface.Oxide.DataFileSystem.ReadObject>($"{Name}/PlayerData"); } else { _playerData = new Dictionary(); SaveData(); } } private void OnServerInitialized() { LoadPlayerData(); } private void OnServerSave() { SaveData(); } void OnNewSave(string filename) { _playerData.Clear(); SaveData(); } private void OnPlayerConnected(BasePlayer player) { if (player == null) return; if (!_playerData.ContainsKey(player.userID)) { _playerData.Add(player.userID, new Data()); _playerData[player.userID].firstTime = true; SaveData(); OpenWelcomePanel(player); } } } }