Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Intersect.Client.Plugins;
- using Intersect.Client.Plugins.Interfaces;
- using Intersect.Client.General;
- using Intersect.Client.Framework.Graphics;
- using Intersect.Client.Framework.Content;
- using Intersect.Client.Framework.Gwen.Control;
- using System.Diagnostics;
- using Intersect.Client.Framework.Gwen;
- namespace Client.Plugins.DiscordButton
- {
- class DiscordButton : ClientPluginEntry
- {
- private GameTexture _buttonTex;
- public override void OnStart(IClientPluginContext context)
- {
- _buttonTex = context.ContentManager.LoadEmbedded<GameTexture>(
- context, ContentTypes.Interface, "DiscordButton/Assets/join-our-discord.png"
- );
- context.Lifecycle.LifecycleChangeState += Lifecycle_LifecycleChangeState;
- }
- private void Lifecycle_LifecycleChangeState(IClientPluginContext context,
- LifecycleChangeStateArgs lifecycleChangeStateArgs)
- {
- if (lifecycleChangeStateArgs.State == GameStates.Menu)
- {
- CreateDiscordButton(context);
- }
- }
- void CreateDiscordButton(IClientPluginContext context)
- {
- // avoid errors if interface not drawn yet
- if (context.Lifecycle.Interface == null) return;
- Button button = context.Lifecycle.Interface.Create<Button>("DiscordButton");
- string URL = context.GetTypedConfiguration<DiscordButtonConfig>()?.DiscordInviteUrl;
- button.Clicked += (sender, args) =>
- {
- Process.Start(URL);
- };
- button.SetImage(_buttonTex, _buttonTex.Name, Button.ControlState.Normal);
- button.SetSize(_buttonTex.GetWidth(), _buttonTex.GetHeight());
- button.CurAlignments?.Add(Alignments.Bottom);
- button.CurAlignments?.Add(Alignments.Right);
- button.ProcessAlignments();
- }
- public override void OnStop(IClientPluginContext context)
- {
- context.Lifecycle.LifecycleChangeState -= Lifecycle_LifecycleChangeState;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment