C#:
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Game.Rust.Cui;
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using Newtonsoft.Json;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("UI NOTIFI", "RUST#0237", "1.0.1")]
[Description("")]
class RNotifi : RustPlugin
{
[ChatCommand("TEST")]
private void cmdChatDraw(BasePlayer player)
{
UINOT(player, Settings.WELCOMCOLOR, "SDFGHJKHGF WERTYUKYJRTHEWF", "4RST5D6YDUSERWFQRGTEY45U\nSEHRJTKYTJTHEARWGAWSUK", "https://i.imgur.com/Q0uBM0N.jpg", Settings.WELCOMTIME, "chat.say /menu");
}
[PluginReference]
private Plugin ImageLibrary;
private class Configuration
{
public string WELCOMCOLOR = "0.8 0.8 0.8 0.8";
public string WELCOMTITLE = "SUPER SERVER";
public string WELCOM = "Nice games on our server";
public string WELCOMIMAGE = "https://i.imgur.com/5yTzWxL.jpg";
public int WELCOMTIME = 10;
public static Configuration Generate()
{
return new Configuration
{
};
}
}
private static Configuration Settings = null;
protected override void LoadConfig()
{
base.LoadConfig();
try
{
Settings = Config.ReadObject<Configuration>();
}
catch
{
PrintWarning($"Error reading config, creating one new config!");
LoadDefaultConfig();
}
SaveConfig();
}
protected override void LoadDefaultConfig() => Settings = Configuration.Generate();
protected override void SaveConfig() => Config.WriteObject(Settings);
void OnServerInitialized()
{
Puts("https://rustplugins.top/ \nhttps://discord.com/invite/2JZjauTVAs");
BasePlayer.activePlayerList.ToList().ForEach(OnPlayerConnected);
PrintError("Плагин ЗАГРУЖЕН || Plugin LOADED");
}
void OnPlayerConnected(BasePlayer player)
{
Draw(player);
}
void OnPlayerDisconnect(BasePlayer player)
{
CuiHelper.DestroyUi(player, "Overlay1");
}
void Unload()
{
foreach (var player in BasePlayer.activePlayerList)
CuiHelper.DestroyUi(player, "Overlay1");
}
[HookMethod("UINOT")]
private void UINOT(BasePlayer player, string color, string text, string tex2, string image, int time, string comm)
{
CuiElementContainer container = new CuiElementContainer();
CuiHelper.DestroyUi(player, "O1");
container.Add(new CuiPanel
{
RectTransform = {AnchorMin = "0 0", AnchorMax = "1 1", OffsetMax = "0 0"},
Image = {Color = color,Material = "assets/icons/greyout.mat"}
}, "Overlay1", "O1");
container.Add(new CuiElement
{
FadeOut = 1f,
Parent = "O1",
Components =
{
new CuiRawImageComponent {FadeIn = 1f, Url = image},
new CuiRectTransformComponent {AnchorMin = "0.03 0.15", AnchorMax = "0.21 0.85"}
}
});
container.Add(new CuiElement
{
Parent = "O1",
Components =
{
new CuiTextComponent {Text = text, Align = TextAnchor.LowerLeft, FontSize = 20},
new CuiRectTransformComponent { AnchorMin = "0.25 0.70", AnchorMax = "1 1" },
new CuiOutlineComponent { Color = "0 0 0 1", Distance = "1 1" }
}
});
container.Add(new CuiElement
{
Parent = "O1",
Components =
{
new CuiTextComponent {Text = tex2, Align = TextAnchor.UpperLeft, FontSize = 15},
new CuiRectTransformComponent { AnchorMin = "0.25 0", AnchorMax = "1 0.70"},
new CuiOutlineComponent { Color = "0 0 0 1", Distance = "1 1" }
}
});
container.Add(new CuiButton
{
RectTransform = {AnchorMin = "0 0", AnchorMax = "1 1", OffsetMax = "0 0"},
Button = {Color = "1 3 0 0", Command = $"UI_MenuHandler skip {comm}"},
Text = {Text = ""}
}, "O1");
CuiHelper.AddUi(player, container);
}
void Draw(BasePlayer player)
{
CuiElementContainer container = new CuiElementContainer();
CuiHelper.DestroyUi(player, "Overlay1");
container.Add(new CuiPanel
{
RectTransform = {AnchorMin = "0.75 0.89", AnchorMax = "1 1", OffsetMax = "0 0"},
Image = {Color = "1 1 1 0"}
}, "Overlay", "Overlay1");
CuiHelper.AddUi(player, container);
}
[ConsoleCommand("UI_MenuHandler")]
private void CmdConsoleHandler(ConsoleSystem.Arg args)
{
var player = args.Player();
if (player == null) return;
/*var obj = player.GetComponent<MenuPlayer>();
if (obj == null) return;*/
string result = "";
if (args.Args[0].ToLower() == "skip")
{
for (int i = 1; i < args.Args.Length; i++)
result += args.Args[i] + " ";
player.SendConsoleCommand(result);
CuiHelper.DestroyUi(player, "O1");
return;
}
/*switch (args.Args[0].ToLower())
{
case "skip":
{
obj.DoNotification(false);
player.SendConsoleCommand(args.Args[2]);
break;
}
}*/
}
}
}