C#:
using Oxide.Core;
using System.Collections.Generic;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("Redirect", "sdapro", "1.0.0")]
class Redirect : RustPlugin
{
private ConfigData configData;
class ConfigData
{
public string ServerIP { get; set; }
public string ServerPort { get; set; }
public string RedirectMessage { get; set; }
public float RedirectDelay { get; set; }
}
protected override void LoadDefaultConfig()
{
configData = new ConfigData
{
ServerIP = "46.52.232.49:28021",
ServerPort = "1112",
RedirectMessage = "<size=20><color=red>Сейчас тебя переведут на фронт!</size>",
RedirectDelay = 3.0f
};
SaveConfig(configData);
}
private void OnPlayerSleepEnded(BasePlayer player)
{
if (permission.UserHasPermission(player.UserIDString, "redirect.admin"))
{
PrintToChat(player, "<size=20>Admin permission detected.\n<color=green>Redirecting bypassed..</color></size>");
return;
}
timer.Once(configData.RedirectDelay, () =>
{
if (player.IsConnected)
{
ConsoleNetwork.SendClientCommandImmediate(player.Connection, "nexus.redirect", configData.ServerIP, configData.ServerPort, "");
ConnectionAuth.Reject(player.Connection, "Connect Battlefield RW");
PlatformService.Instance.EndPlayerSession(player.userID);
}
});
PrintToChat(player, string.Format(configData.RedirectMessage, configData.RedirectDelay));
}
private void SaveConfig(ConfigData config)
{
Config.WriteObject(config, true);
}
private void LoadConfig()
{
try
{
configData = Config.ReadObject<ConfigData>();
}
catch
{
LoadDefaultConfig();
}
}
private void Init()
{
LoadConfig();
permission.RegisterPermission("redirect.admin", this);
}
}
}