Client Example.
This commit moves the client to the new main server layout. Once the Luski library has more code in the public server area, we can start to test the app.
This commit is contained in:
parent
bdb1e350f6
commit
d8657d103d
@ -8,6 +8,12 @@ public class Settings
|
|||||||
[JsonPropertyName("scale")]
|
[JsonPropertyName("scale")]
|
||||||
public double Scale { get; set; } = 1;
|
public double Scale { get; set; } = 1;
|
||||||
[JsonInclude]
|
[JsonInclude]
|
||||||
|
[JsonPropertyName("api_domain")]
|
||||||
|
public string Domain { get; set; } = "api.beta.luski.jacobtech.com";
|
||||||
|
[JsonInclude]
|
||||||
|
[JsonPropertyName("api_v")]
|
||||||
|
public string Version { get; set; } = "v1";
|
||||||
|
[JsonInclude]
|
||||||
[JsonPropertyName("perscrollpixels")]
|
[JsonPropertyName("perscrollpixels")]
|
||||||
public uint PerScrollPixels { get; set; } = 20;
|
public uint PerScrollPixels { get; set; } = 20;
|
||||||
[JsonInclude]
|
[JsonInclude]
|
||||||
|
@ -15,7 +15,7 @@ public class UpdaterSettings
|
|||||||
|
|
||||||
[JsonInclude]
|
[JsonInclude]
|
||||||
[JsonPropertyName("branch")]
|
[JsonPropertyName("branch")]
|
||||||
public Branch Branch { get; set; } = Branch.Beta;
|
public string Branch { get; set; } = "beta";
|
||||||
|
|
||||||
[JsonInclude]
|
[JsonInclude]
|
||||||
[JsonPropertyName("platform")]
|
[JsonPropertyName("platform")]
|
||||||
|
@ -6,13 +6,16 @@ using GraphicsManager.Enums;
|
|||||||
using GraphicsManager.Interfaces;
|
using GraphicsManager.Interfaces;
|
||||||
using GraphicsManager.Objects;
|
using GraphicsManager.Objects;
|
||||||
using GraphicsManager.Objects.Core;
|
using GraphicsManager.Objects.Core;
|
||||||
|
using JacobTechEncryption;
|
||||||
using Luski.GUI.MainScreen.Interfaces;
|
using Luski.GUI.MainScreen.Interfaces;
|
||||||
using Luski.GUI.MainScreen.UI;
|
using Luski.GUI.MainScreen.UI;
|
||||||
using Luski.GUI.StartPage.UI;
|
using Luski.GUI.StartPage.UI;
|
||||||
using Luski.net;
|
using Luski.net;
|
||||||
using Luski.net.Enums;
|
using Luski.net.Enums;
|
||||||
|
using Luski.net.Enums.Main;
|
||||||
using Luski.net.Interfaces;
|
using Luski.net.Interfaces;
|
||||||
using Luski.net.JsonTypes;
|
using Luski.net.JsonTypes;
|
||||||
|
using Luski.net.Structures.Main;
|
||||||
using OpenTK.Graphics.OpenGL4;
|
using OpenTK.Graphics.OpenGL4;
|
||||||
using OpenTK.Mathematics;
|
using OpenTK.Mathematics;
|
||||||
using OpenTK.Windowing.Desktop;
|
using OpenTK.Windowing.Desktop;
|
||||||
@ -101,8 +104,8 @@ public class MainScreen : Window
|
|||||||
|
|
||||||
Thread t = new(_ =>
|
Thread t = new(_ =>
|
||||||
{
|
{
|
||||||
Encryption.GenerateKeys();
|
Globals.Luski.MainServer.EncryptionHandler.GenerateKeys();
|
||||||
|
|
||||||
});
|
});
|
||||||
t.Start();
|
t.Start();
|
||||||
WindowLoaded += OnWindowLoaded;
|
WindowLoaded += OnWindowLoaded;
|
||||||
@ -131,7 +134,7 @@ public class MainScreen : Window
|
|||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddGroup(SocketGroupChannel group)
|
public void AddGroup(MainSocketGroupChannel group)
|
||||||
{
|
{
|
||||||
Group friend = new(group);
|
Group friend = new(group);
|
||||||
friend.ClickCon += ChannelOnClickCon;
|
friend.ClickCon += ChannelOnClickCon;
|
||||||
@ -143,20 +146,20 @@ public class MainScreen : Window
|
|||||||
private List<IChannelPick> chans = new();
|
private List<IChannelPick> chans = new();
|
||||||
private Dictionary<long, int> FR_Index = new();
|
private Dictionary<long, int> FR_Index = new();
|
||||||
|
|
||||||
public void AddFriendRequest(SocketRemoteUser user)
|
public void AddFriendRequest(MainSocketRemoteUser user)
|
||||||
{
|
{
|
||||||
FriendRequest frui = new(this, user);
|
FriendRequest frui = new(this, user);
|
||||||
FR_Index.Add(user.Id, friend_request!.Controls.Length);
|
FR_Index.Add(user.Id, friend_request!.Controls.Length);
|
||||||
friend_request.Controls.Add(frui);
|
friend_request.Controls.Add(frui);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveFriendRequest(SocketRemoteUser user)
|
public void RemoveFriendRequest(MainSocketRemoteUser user)
|
||||||
{
|
{
|
||||||
if (!FR_Index.ContainsKey(user.Id)) return;
|
if (!FR_Index.ContainsKey(user.Id)) return;
|
||||||
friend_request!.Controls.Remove(friend_request!.Controls[FR_Index[user.Id]]);
|
friend_request!.Controls.Remove(friend_request!.Controls[FR_Index[user.Id]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddFriend(SocketRemoteUser user)
|
public void AddFriend(MainSocketRemoteUser user)
|
||||||
{
|
{
|
||||||
Friend friend2 = new(user);
|
Friend friend2 = new(user);
|
||||||
friend2.ClickCon += ChannelOnClickCon;
|
friend2.ClickCon += ChannelOnClickCon;
|
||||||
@ -202,16 +205,14 @@ public class MainScreen : Window
|
|||||||
channelCancellationToken.Cancel(false);
|
channelCancellationToken.Cancel(false);
|
||||||
}
|
}
|
||||||
channelCancellationToken = new CancellationTokenSource();
|
channelCancellationToken = new CancellationTokenSource();
|
||||||
Globals.Luski.ChangeChannel(arg.Channel.Id, channelCancellationToken.Token, Globals.Luski.CurrentUser.Servers.First()).Wait();
|
//Globals.Luski.ChangeChannel(arg.Channel.Id, channelCancellationToken.Token).Wait();
|
||||||
Invoke(new Action(() =>
|
Invoke(new Action(() =>
|
||||||
{
|
{
|
||||||
chat!.Clear();
|
chat!.Clear();
|
||||||
}));
|
}));
|
||||||
IReadOnlyList<SocketMessage> messages = arg.Channel.GetMessages(channelCancellationToken.Token, Globals.Settings.LoadPerChannel).Result;
|
IReadOnlyList<MainSocketMessage> messages = arg.Channel.GetMessages(channelCancellationToken.Token, Globals.Settings.LoadPerChannel).Result;
|
||||||
|
|
||||||
|
|
||||||
|
foreach (MainSocketMessage message in messages.Reverse())
|
||||||
foreach (SocketMessage message in messages.Reverse())
|
|
||||||
{
|
{
|
||||||
if (channelCancellationToken is null || channelCancellationToken.Token.IsCancellationRequested) return;
|
if (channelCancellationToken is null || channelCancellationToken.Token.IsCancellationRequested) return;
|
||||||
Invoke(new Action(() =>
|
Invoke(new Action(() =>
|
||||||
@ -249,7 +250,7 @@ public class MainScreen : Window
|
|||||||
// Luski.net.Encryption.File.Channels.AddKey(69, Private);
|
// Luski.net.Encryption.File.Channels.AddKey(69, Private);
|
||||||
//Clip
|
//Clip
|
||||||
// Console.WriteLine(Public);
|
// Console.WriteLine(Public);
|
||||||
Globals.Luski.SetMultiThreadPercent(Globals.Settings.MultiThreadPercent);
|
//Globals.Luski.SetMultiThreadPercent(Globals.Settings.MultiThreadPercent);
|
||||||
Size = new((int)(1332 * Globals.Settings.Scale), (int)(866 * Globals.Settings.Scale));
|
Size = new((int)(1332 * Globals.Settings.Scale), (int)(866 * Globals.Settings.Scale));
|
||||||
DateTime start = DateTime.Now;
|
DateTime start = DateTime.Now;
|
||||||
CenterWindow(0);
|
CenterWindow(0);
|
||||||
@ -258,18 +259,12 @@ public class MainScreen : Window
|
|||||||
BackgroundColor = new Color4(34, 34, 34, 255);
|
BackgroundColor = new Color4(34, 34, 34, 255);
|
||||||
Rectangle u=new Rectangle(TextureManager.AddTexture(Tools.GetResourceBytes(Assembly.GetExecutingAssembly(),
|
Rectangle u=new Rectangle(TextureManager.AddTexture(Tools.GetResourceBytes(Assembly.GetExecutingAssembly(),
|
||||||
"Luski.Resources.Textures.Status.png"))) { Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left, Size = new((int)(46 * Globals.Settings.Scale)), Location = new((int)(62 * Globals.Settings.Scale), (int)(812 * Globals.Settings.Scale))};
|
"Luski.Resources.Textures.Status.png"))) { Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left, Size = new((int)(46 * Globals.Settings.Scale)), Location = new((int)(62 * Globals.Settings.Scale), (int)(812 * Globals.Settings.Scale))};
|
||||||
Texture uut = TextureManager.AddTexture(Globals.Luski.CurrentUser.GetAvatar(CancellationToken.None, Globals.Luski.CurrentUser.Servers.First()).Result);
|
Texture uut = TextureManager.AddTexture(Globals.Luski.MainServer.User.GetAvatar(CancellationToken.None).Result);
|
||||||
uut.Unit = TextureUnit.Texture1;
|
uut.Unit = TextureUnit.Texture1;
|
||||||
u.Shader = Rectangle.DefaultAlphaTextureShader[Context];
|
u.Shader = Rectangle.DefaultAlphaTextureShader[Context];
|
||||||
u.Textures.Add(uut);
|
u.Textures.Add(uut);
|
||||||
Controls.Add(u);
|
Controls.Add(u);
|
||||||
Globals.Luski.CurrentUser.AddServer(SocketServer.GetServer("TCLL.LuskiServers.JacobTech.com"));
|
Label ul = new Label(){ Font = Globals.DefaultFont, Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left, Location = new(0, (int)(826 * Globals.Settings.Scale)), Text = Globals.Luski.MainServer.User.DisplayName };
|
||||||
foreach (SocketServer Server in Globals.Luski.CurrentUser.Servers)
|
|
||||||
{
|
|
||||||
Console.WriteLine("Loading Server: {0}", Server.Domain);
|
|
||||||
//add server to UI
|
|
||||||
}
|
|
||||||
Label ul = new Label(){ Font = Globals.DefaultFont, Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left, Location = new(0, (int)(826 * Globals.Settings.Scale)), Text = Globals.Luski.CurrentUser.Username};
|
|
||||||
FlowLayout ser;
|
FlowLayout ser;
|
||||||
ul.Location = new((int)(112 * Globals.Settings.Scale),
|
ul.Location = new((int)(112 * Globals.Settings.Scale),
|
||||||
(u.Location.Y + (u.Size.Y/2) - (ul.PostiveTrueHeight/2) - ul.Size.Y + ul.TrueHeight));
|
(u.Location.Y + (u.Size.Y/2) - (ul.PostiveTrueHeight/2) - ul.Size.Y + ul.TrueHeight));
|
||||||
@ -316,24 +311,24 @@ public class MainScreen : Window
|
|||||||
channelpicker.Controls.Add(FriendManagerBtn = new RoundedButton() { Font = Globals.DefaultFont, Text = "Friends", Size = new((int)(52* Globals.Settings.Scale)), InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan});
|
channelpicker.Controls.Add(FriendManagerBtn = new RoundedButton() { Font = Globals.DefaultFont, Text = "Friends", Size = new((int)(52* Globals.Settings.Scale)), InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan});
|
||||||
FriendManagerBtn.Clicked += FriendManagerBtnOnClicked;
|
FriendManagerBtn.Clicked += FriendManagerBtnOnClicked;
|
||||||
Console.WriteLine("Templates loaded in " + (DateTime.Now - start).TotalSeconds + " seconds");
|
Console.WriteLine("Templates loaded in " + (DateTime.Now - start).TotalSeconds + " seconds");
|
||||||
foreach (SocketGroupChannel ch in Globals.Luski.CurrentUser.Channels.Where(s => s is SocketGroupChannel).Cast<SocketGroupChannel>())
|
foreach (MainSocketGroupChannel ch in Globals.Luski.MainServer.User.Channels.Where(s => s is MainSocketGroupChannel).Cast<MainSocketGroupChannel>())
|
||||||
{
|
{
|
||||||
AddGroup(ch);
|
AddGroup(ch);
|
||||||
}
|
}
|
||||||
foreach (SocketRemoteUser item in Globals.Luski.CurrentUser.Friends)
|
foreach (MainSocketRemoteUser item in Globals.Luski.MainServer.User.Friends)
|
||||||
{
|
{
|
||||||
if (item.Channel is not null) AddFriend(item);
|
if (item.Channel is not null) AddFriend(item);
|
||||||
}
|
}
|
||||||
Console.WriteLine("Channels done in " + (DateTime.Now - start).TotalSeconds + " seconds");
|
Console.WriteLine("Channels done in " + (DateTime.Now - start).TotalSeconds + " seconds");
|
||||||
|
|
||||||
SocketTextChannel chan = Globals.Luski.GetChannel<SocketTextChannel>(Globals.Luski.CurrentUser.SelectedChannel, CancellationToken.None, Globals.Luski.CurrentUser.Servers.First()).Result;
|
MainSocketTextChannel chan = Globals.Luski.MainServer.GetChannel<MainSocketTextChannel>(Globals.Luski.MainServer.User.SelectedChannel, CancellationToken.None).Result;
|
||||||
chat.UpdateTitle(chans.First(s => s.Channel.Id == chan.Id));
|
chat.UpdateTitle(chans.First(s => s.Channel.Id == chan.Id));
|
||||||
chat.MessageFlow.BlockDraw = true;
|
chat.MessageFlow.BlockDraw = true;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
IReadOnlyList<SocketMessage> messages = chan.GetMessages(CancellationToken.None, Globals.Settings.LoadPerChannel).Result;
|
IReadOnlyList<MainSocketMessage> messages = chan.GetMessages(CancellationToken.None, Globals.Settings.LoadPerChannel).Result;
|
||||||
Console.WriteLine("Messages done in " + (DateTime.Now - start).TotalSeconds + " seconds");
|
Console.WriteLine("Messages done in " + (DateTime.Now - start).TotalSeconds + " seconds");
|
||||||
foreach (SocketMessage message in messages.Reverse())
|
foreach (MainSocketMessage message in messages.Reverse())
|
||||||
{
|
{
|
||||||
chat.AddMessage(TextureManager, message);
|
chat.AddMessage(TextureManager, message);
|
||||||
}
|
}
|
||||||
@ -348,7 +343,7 @@ public class MainScreen : Window
|
|||||||
chat.MessageFlow.BlockDraw = false;
|
chat.MessageFlow.BlockDraw = false;
|
||||||
|
|
||||||
Console.WriteLine("Messages Fonts done in " + (DateTime.Now - start).TotalSeconds + " seconds");
|
Console.WriteLine("Messages Fonts done in " + (DateTime.Now - start).TotalSeconds + " seconds");
|
||||||
foreach (SocketRemoteUser cufr in Globals.Luski.CurrentUser.FriendRequests)
|
foreach (MainSocketRemoteUser cufr in Globals.Luski.MainServer.User.FriendRequests)
|
||||||
{
|
{
|
||||||
AddFriendRequest(cufr);
|
AddFriendRequest(cufr);
|
||||||
}
|
}
|
||||||
@ -363,10 +358,10 @@ public class MainScreen : Window
|
|||||||
|
|
||||||
private Task OnMainShow()
|
private Task OnMainShow()
|
||||||
{
|
{
|
||||||
Globals.Luski.OnError += LuskiOnOnError;
|
Globals.Luski.MainServer.OnError += LuskiOnOnError;
|
||||||
Globals.Luski.UserStatusUpdate += LuskiOnUserStatusUpdate;
|
Globals.Luski.MainServer.UserStatusUpdate += LuskiOnUserStatusUpdate;
|
||||||
Globals.Luski.ReceivedFriendRequest += LuskiOnReceivedFriendRequest;
|
Globals.Luski.MainServer.ReceivedFriendRequest += LuskiOnReceivedFriendRequest;
|
||||||
Globals.Luski.FriendRequestResult += LuskiOnFriendRequestResult;
|
Globals.Luski.MainServer.FriendRequestResult += LuskiOnFriendRequestResult;
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -378,7 +373,7 @@ public class MainScreen : Window
|
|||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task LuskiOnFriendRequestResult(SocketRemoteUser arg1, bool arg2)
|
private Task LuskiOnFriendRequestResult(MainSocketRemoteUser arg1, bool arg2)
|
||||||
{
|
{
|
||||||
Console.WriteLine("new result");
|
Console.WriteLine("new result");
|
||||||
Invoke(new Action(() =>
|
Invoke(new Action(() =>
|
||||||
@ -389,7 +384,7 @@ public class MainScreen : Window
|
|||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task LuskiOnReceivedFriendRequest(SocketRemoteUser arg)
|
private Task LuskiOnReceivedFriendRequest(MainSocketRemoteUser arg)
|
||||||
{
|
{
|
||||||
Invoke(new Action(() =>
|
Invoke(new Action(() =>
|
||||||
{
|
{
|
||||||
@ -402,7 +397,7 @@ public class MainScreen : Window
|
|||||||
{
|
{
|
||||||
Console.WriteLine(before);
|
Console.WriteLine(before);
|
||||||
Console.WriteLine(After);
|
Console.WriteLine(After);
|
||||||
if (before is not SocketRemoteUser Before || Before.FriendStatus != FriendStatus.Friends || Before.Id == 0) return Task.CompletedTask;
|
if (before is not MainSocketRemoteUser Before || Before.FriendStatus != FriendStatus.Friends || Before.Id == 0) return Task.CompletedTask;
|
||||||
Friend per = fr.Where(s => s.User.Id == before.Id).First()!;
|
Friend per = fr.Where(s => s.User.Id == before.Id).First()!;
|
||||||
Label stat = per.Status;
|
Label stat = per.Status;
|
||||||
Invoke(new Action(() =>
|
Invoke(new Action(() =>
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
using Luski.net.JsonTypes;
|
using Luski.net.Structures.Main;
|
||||||
|
|
||||||
namespace Luski.GUI.MainScreen.Interfaces;
|
namespace Luski.GUI.MainScreen.Interfaces;
|
||||||
|
|
||||||
public interface IChannelPick
|
public interface IChannelPick
|
||||||
{
|
{
|
||||||
public SocketTextChannel Channel { get; }
|
public MainSocketTextChannel Channel { get; }
|
||||||
}
|
}
|
@ -1,6 +1,6 @@
|
|||||||
using GraphicsManager.Enums;
|
using GraphicsManager.Enums;
|
||||||
using GraphicsManager.Objects;
|
using GraphicsManager.Objects;
|
||||||
using Luski.net.JsonTypes;
|
using Luski.net.Structures.Main;
|
||||||
using OpenTK.Mathematics;
|
using OpenTK.Mathematics;
|
||||||
using OpenTK.Windowing.Common;
|
using OpenTK.Windowing.Common;
|
||||||
using OpenTK.Windowing.GraphicsLibraryFramework;
|
using OpenTK.Windowing.GraphicsLibraryFramework;
|
||||||
@ -31,15 +31,15 @@ public class AddFriendPage : FlowLayout
|
|||||||
Input.BorderColor = Color4.Red;
|
Input.BorderColor = Color4.Red;
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
SocketRemoteUser? result = Globals.Luski.SendFriendRequest(code, CancellationToken.None).Result;
|
// MainSocketRemoteUser? result = Globals.Luski.MainServer.SendFriendRequest(code, CancellationToken.None).Result;
|
||||||
if (result is null) Input.BorderColor = Color4.Red;
|
//if (result is null) Input.BorderColor = Color4.Red;
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
if (result.Channel is null)
|
// if (result.Channel is null)
|
||||||
Screen.AddFriendRequest(result);
|
// Screen.AddFriendRequest(result);
|
||||||
else
|
// else
|
||||||
Screen.AddFriend(result);
|
// Screen.AddFriend(result);
|
||||||
}
|
//}
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,7 +5,9 @@ using GraphicsManager.Objects.Core;
|
|||||||
using Luski.GUI.MainScreen.Interfaces;
|
using Luski.GUI.MainScreen.Interfaces;
|
||||||
using Luski.net;
|
using Luski.net;
|
||||||
using Luski.net.Enums;
|
using Luski.net.Enums;
|
||||||
|
using Luski.net.Enums.Main;
|
||||||
using Luski.net.JsonTypes;
|
using Luski.net.JsonTypes;
|
||||||
|
using Luski.net.Structures.Main;
|
||||||
using OpenTK.Mathematics;
|
using OpenTK.Mathematics;
|
||||||
using OpenTK.Windowing.Common;
|
using OpenTK.Windowing.Common;
|
||||||
using OpenTK.Windowing.GraphicsLibraryFramework;
|
using OpenTK.Windowing.GraphicsLibraryFramework;
|
||||||
@ -17,7 +19,7 @@ public class Chat : UserControl
|
|||||||
public FlowLayout MessageFlow;
|
public FlowLayout MessageFlow;
|
||||||
private Label title, desc;
|
private Label title, desc;
|
||||||
private Textbox tb;
|
private Textbox tb;
|
||||||
private SocketTextChannel? Channel;
|
private MainSocketTextChannel? Channel;
|
||||||
public Chat()
|
public Chat()
|
||||||
{
|
{
|
||||||
UserControl titlecon;
|
UserControl titlecon;
|
||||||
@ -50,7 +52,7 @@ public class Chat : UserControl
|
|||||||
Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left | ObjectAnchor.Right
|
Anchor = ObjectAnchor.Bottom | ObjectAnchor.Left | ObjectAnchor.Right
|
||||||
});
|
});
|
||||||
tb.KeyPress += TbOnKeyPress;
|
tb.KeyPress += TbOnKeyPress;
|
||||||
Globals.Luski.MessageReceived += LuskiOnMessageReceived;
|
Globals.Luski.MainServer.MessageReceived += LuskiOnMessageReceived;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task TbOnKeyPress(KeyboardKeyEventArgs arg)
|
private Task TbOnKeyPress(KeyboardKeyEventArgs arg)
|
||||||
@ -63,11 +65,11 @@ public class Chat : UserControl
|
|||||||
|
|
||||||
private void Thr()
|
private void Thr()
|
||||||
{
|
{
|
||||||
Globals.Luski.SendMessage(tb.Text, Channel!.Id, Globals.Luski.CurrentUser.Servers.First(), CancellationToken.None);
|
//Globals.Luski.MainServer.SendMessage(tb.Text, Channel!.Id, CancellationToken.None);
|
||||||
Window!.Invoke(() => { tb.Text = string.Empty; });
|
Window!.Invoke(() => { tb.Text = string.Empty; });
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task LuskiOnMessageReceived(SocketMessage arg)
|
private Task LuskiOnMessageReceived(MainSocketMessage arg)
|
||||||
{
|
{
|
||||||
if (Channel!.Id != arg.ChannelID) return Task.CompletedTask;
|
if (Channel!.Id != arg.ChannelID) return Task.CompletedTask;
|
||||||
IRenderObject? reff = null;
|
IRenderObject? reff = null;
|
||||||
@ -92,7 +94,7 @@ public class Chat : UserControl
|
|||||||
title.Text = channelPick.Channel.Title;
|
title.Text = channelPick.Channel.Title;
|
||||||
tb.WatermarkFont = Globals.DefaultFont;
|
tb.WatermarkFont = Globals.DefaultFont;
|
||||||
if (channelPick.Channel.Type == ChannelType.DM)
|
if (channelPick.Channel.Type == ChannelType.DM)
|
||||||
title.Text = (channelPick.Channel as SocketDMChannel)!.User.Username;
|
title.Text = (channelPick.Channel as MainSocketDMChannel)!.User.DisplayName;
|
||||||
tb.WatermarkText = "Message " + title.Text;
|
tb.WatermarkText = "Message " + title.Text;
|
||||||
if (channelPick.Channel.Description is not null)
|
if (channelPick.Channel.Description is not null)
|
||||||
{
|
{
|
||||||
@ -106,11 +108,11 @@ public class Chat : UserControl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private SocketMessage? lastm;
|
private MainSocketMessage? lastm;
|
||||||
private long? lastUser;
|
private long? lastUser;
|
||||||
private ChatMessage? LastChatMessage;
|
private ChatMessage? LastChatMessage;
|
||||||
|
|
||||||
public void AddMessage(TextureManager m, SocketMessage Message)
|
public void AddMessage(TextureManager m, MainSocketMessage Message)
|
||||||
{
|
{
|
||||||
bool hasbeentenmin = false;
|
bool hasbeentenmin = false;
|
||||||
if (lastm is not null)
|
if (lastm is not null)
|
||||||
|
@ -6,8 +6,10 @@ using GraphicsManager.Objects;
|
|||||||
using GraphicsManager.Objects.Core;
|
using GraphicsManager.Objects.Core;
|
||||||
using Luski.net;
|
using Luski.net;
|
||||||
using Luski.net.Enums;
|
using Luski.net.Enums;
|
||||||
|
using Luski.net.Enums.Main;
|
||||||
using Luski.net.Interfaces;
|
using Luski.net.Interfaces;
|
||||||
using Luski.net.JsonTypes;
|
using Luski.net.JsonTypes;
|
||||||
|
using Luski.net.Structures.Main;
|
||||||
using OpenTK.Graphics.OpenGL4;
|
using OpenTK.Graphics.OpenGL4;
|
||||||
using OpenTK.Mathematics;
|
using OpenTK.Mathematics;
|
||||||
|
|
||||||
@ -17,12 +19,12 @@ public class ChatMessage : UserControl
|
|||||||
{
|
{
|
||||||
readonly int padding = 2;
|
readonly int padding = 2;
|
||||||
private static Font TimeFont = Font.MakeFontFromSystem(13);
|
private static Font TimeFont = Font.MakeFontFromSystem(13);
|
||||||
private SocketMessage Msg { get; }
|
private MainSocketMessage Msg { get; }
|
||||||
private Label label2, lastm;
|
private Label label2, lastm;
|
||||||
private static Dictionary<SocketRemoteUser, ContextMenu> Menues = new();
|
private static Dictionary<MainSocketRemoteUser, ContextMenu> Menues = new();
|
||||||
private static Dictionary<SocketRemoteUser, List<ChatMessage>> Messages = new();
|
private static Dictionary<MainSocketRemoteUser, List<ChatMessage>> Messages = new();
|
||||||
|
|
||||||
public ChatMessage(TextureManager tm, SocketMessage message)
|
public ChatMessage(TextureManager tm, MainSocketMessage message)
|
||||||
{
|
{
|
||||||
Label label1;
|
Label label1;
|
||||||
Size = new((int)(723.5 * Globals.Settings.Scale), (int)(37 * Globals.Settings.Scale));
|
Size = new((int)(723.5 * Globals.Settings.Scale), (int)(37 * Globals.Settings.Scale));
|
||||||
@ -32,7 +34,7 @@ public class ChatMessage : UserControl
|
|||||||
IUser user = message.GetAuthor(CancellationToken.None).Result;
|
IUser user = message.GetAuthor(CancellationToken.None).Result;
|
||||||
Anchor = ObjectAnchor.Left | ObjectAnchor.Right;
|
Anchor = ObjectAnchor.Left | ObjectAnchor.Right;
|
||||||
|
|
||||||
Controls.Add(label1 = new Label() { Font = Globals.DefaultFont, Location = new((int)(54 * Globals.Settings.Scale), (int)(6 * Globals.Settings.Scale)), Text = user.Username});
|
Controls.Add(label1 = new Label() { Font = Globals.DefaultFont, Location = new((int)(54 * Globals.Settings.Scale), (int)(6 * Globals.Settings.Scale)), Text = user.DisplayName});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -53,7 +55,7 @@ public class ChatMessage : UserControl
|
|||||||
Controls.Add(new Label() { Scale = 0.8f, Font = Globals.DefaultFont, Location = new(label1.Location.X + label1.Size.X + 4, label1.Location.Y), Text = timestr});
|
Controls.Add(new Label() { Scale = 0.8f, Font = Globals.DefaultFont, Location = new(label1.Location.X + label1.Size.X + 4, label1.Location.Y), Text = timestr});
|
||||||
Rectangle r = new Rectangle(tm.AddTexture(Tools.GetResourceBytes(Assembly.GetExecutingAssembly(),
|
Rectangle r = new Rectangle(tm.AddTexture(Tools.GetResourceBytes(Assembly.GetExecutingAssembly(),
|
||||||
"Luski.Resources.Textures.Status.png"))) { Location = new((int)(10 * Globals.Settings.Scale), (int)(2 * Globals.Settings.Scale)), Size = new((int)(38 * Globals.Settings.Scale)) };
|
"Luski.Resources.Textures.Status.png"))) { Location = new((int)(10 * Globals.Settings.Scale), (int)(2 * Globals.Settings.Scale)), Size = new((int)(38 * Globals.Settings.Scale)) };
|
||||||
Texture tex = tm.AddTexture(user.GetAvatar(CancellationToken.None, Globals.Luski.CurrentUser.Servers.First()).Result);
|
Texture tex = tm.AddTexture(user.GetAvatar(CancellationToken.None).Result);
|
||||||
tex.Unit = TextureUnit.Texture1;
|
tex.Unit = TextureUnit.Texture1;
|
||||||
r.Shader = Rectangle.DefaultAlphaTextureShader[Globals.ms.Context];
|
r.Shader = Rectangle.DefaultAlphaTextureShader[Globals.ms.Context];
|
||||||
r.Textures.Add(tex);
|
r.Textures.Add(tex);
|
||||||
@ -82,7 +84,7 @@ public class ChatMessage : UserControl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user is SocketRemoteUser u && u.FriendStatus == FriendStatus.NotFriends)
|
if (user is MainSocketRemoteUser u && u.FriendStatus == FriendStatus.NotFriends)
|
||||||
{
|
{
|
||||||
Tag = u;
|
Tag = u;
|
||||||
if (!Menues.ContainsKey(u))
|
if (!Menues.ContainsKey(u))
|
||||||
@ -107,7 +109,7 @@ public class ChatMessage : UserControl
|
|||||||
|
|
||||||
private Task DOnClicked(IRenderObject arg)
|
private Task DOnClicked(IRenderObject arg)
|
||||||
{
|
{
|
||||||
if (arg.Tag is ChatMessage u && u.Tag is SocketRemoteUser uu)
|
if (arg.Tag is ChatMessage u && u.Tag is MainSocketRemoteUser uu)
|
||||||
{
|
{
|
||||||
foreach (ChatMessage cm in Messages[uu])
|
foreach (ChatMessage cm in Messages[uu])
|
||||||
{
|
{
|
||||||
@ -118,18 +120,18 @@ public class ChatMessage : UserControl
|
|||||||
|
|
||||||
Messages.Remove(uu);
|
Messages.Remove(uu);
|
||||||
Menues.Remove(uu);
|
Menues.Remove(uu);
|
||||||
SocketRemoteUser result = Globals.Luski
|
// MainSocketRemoteUser result = Globals.Luski.MainServer
|
||||||
.SendFriendRequest(long.Parse(uu.friend_codes.First()), CancellationToken.None).Result;
|
// .SendFriendRequest(long.Parse(uu.friend_codes.First()), CancellationToken.None).Result;
|
||||||
if (result.Channel is null)
|
// if (result.Channel is null)
|
||||||
Globals.ms.AddFriendRequest(result);
|
// Globals.ms.AddFriendRequest(result);
|
||||||
else
|
// else
|
||||||
Globals.ms.AddFriend(result);
|
// Globals.ms.AddFriend(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddMessage(SocketMessage msg)
|
public void AddMessage(MainSocketMessage msg)
|
||||||
{
|
{
|
||||||
Label newLabel = new()
|
Label newLabel = new()
|
||||||
{
|
{
|
||||||
@ -169,7 +171,7 @@ public class ChatMessage : UserControl
|
|||||||
private Task NewLabel_MouseLeave(IRenderObject sender)
|
private Task NewLabel_MouseLeave(IRenderObject sender)
|
||||||
{
|
{
|
||||||
if (sender is not Label label) return Task.CompletedTask;
|
if (sender is not Label label) return Task.CompletedTask;
|
||||||
if (label.Tag is not SocketMessage Message) return Task.CompletedTask;
|
if (label.Tag is not MainSocketMessage Message) return Task.CompletedTask;
|
||||||
DateTime time = new DateTime(2022, 1, 1, 0, 0, 0, 0).AddMilliseconds(Message.Id >> 22).ToLocalTime();
|
DateTime time = new DateTime(2022, 1, 1, 0, 0, 0, 0).AddMilliseconds(Message.Id >> 22).ToLocalTime();
|
||||||
string b = time.ToString("h:mm tt");
|
string b = time.ToString("h:mm tt");
|
||||||
Label[] l = Labels.Where(s => s.Text == b).ToArray();
|
Label[] l = Labels.Where(s => s.Text == b).ToArray();
|
||||||
@ -185,7 +187,7 @@ public class ChatMessage : UserControl
|
|||||||
private Task NewLabel_MouseEnter(IRenderObject sender)
|
private Task NewLabel_MouseEnter(IRenderObject sender)
|
||||||
{
|
{
|
||||||
if (sender is not Label label) return Task.CompletedTask;
|
if (sender is not Label label) return Task.CompletedTask;
|
||||||
if (label.Tag is not SocketMessage Message) return Task.CompletedTask;
|
if (label.Tag is not MainSocketMessage Message) return Task.CompletedTask;
|
||||||
DateTime time = new DateTime(2022, 1, 1, 0, 0, 0, 0).AddMilliseconds(Message.Id >> 22).ToLocalTime();
|
DateTime time = new DateTime(2022, 1, 1, 0, 0, 0, 0).AddMilliseconds(Message.Id >> 22).ToLocalTime();
|
||||||
Label m = new()
|
Label m = new()
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,7 @@ using System.Reflection;
|
|||||||
using GraphicsManager;
|
using GraphicsManager;
|
||||||
using GraphicsManager.Interfaces;
|
using GraphicsManager.Interfaces;
|
||||||
using GraphicsManager.Objects;
|
using GraphicsManager.Objects;
|
||||||
using File = Luski.net.JsonTypes.File;
|
using File = Luski.net.Structures.File;
|
||||||
|
|
||||||
namespace Luski.GUI.MainScreen.UI;
|
namespace Luski.GUI.MainScreen.UI;
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ using Luski.GUI.Windows;
|
|||||||
using Luski.net;
|
using Luski.net;
|
||||||
using Luski.net.Enums;
|
using Luski.net.Enums;
|
||||||
using Luski.net.JsonTypes;
|
using Luski.net.JsonTypes;
|
||||||
|
using Luski.net.Structures.Main;
|
||||||
using OpenTK.Graphics.OpenGL4;
|
using OpenTK.Graphics.OpenGL4;
|
||||||
using OpenTK.Mathematics;
|
using OpenTK.Mathematics;
|
||||||
using OpenTK.Windowing.GraphicsLibraryFramework;
|
using OpenTK.Windowing.GraphicsLibraryFramework;
|
||||||
@ -16,9 +17,9 @@ namespace Luski.GUI.MainScreen.UI;
|
|||||||
|
|
||||||
public class Friend : UserControl, IChannelPick
|
public class Friend : UserControl, IChannelPick
|
||||||
{
|
{
|
||||||
public SocketRemoteUser User;
|
public MainSocketRemoteUser User;
|
||||||
|
|
||||||
public SocketTextChannel Channel
|
public MainSocketTextChannel Channel
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
@ -27,13 +28,13 @@ public class Friend : UserControl, IChannelPick
|
|||||||
}
|
}
|
||||||
public Rectangle r, rr;
|
public Rectangle r, rr;
|
||||||
public Label Username, Status;
|
public Label Username, Status;
|
||||||
public Friend(SocketRemoteUser person)
|
public Friend(MainSocketRemoteUser person)
|
||||||
{
|
{
|
||||||
User = person;
|
User = person;
|
||||||
Size = new((int)(240 * Globals.Settings.Scale), (int)(62* Globals.Settings.Scale));
|
Size = new((int)(240 * Globals.Settings.Scale), (int)(62* Globals.Settings.Scale));
|
||||||
BackgroundColor = new(34, 34, 34, 255);
|
BackgroundColor = new(34, 34, 34, 255);
|
||||||
|
|
||||||
Controls.Add(Username = new Label() { Font = Globals.DefaultFont, Text = person.Username, Location = new((int)(58 * Globals.Settings.Scale),(int)(14 * Globals.Settings.Scale))});
|
Controls.Add(Username = new Label() { Font = Globals.DefaultFont, Text = person.DisplayName, Location = new((int)(58 * Globals.Settings.Scale),(int)(14 * Globals.Settings.Scale))});
|
||||||
Controls.Add(Status = new Label() { Scale = 0.8f, Font = Globals.DefaultFont, Text = person.Status.ToString(), Location = new((int)(58 * Globals.Settings.Scale),(int)(34* Globals.Settings.Scale))});
|
Controls.Add(Status = new Label() { Scale = 0.8f, Font = Globals.DefaultFont, Text = person.Status.ToString(), Location = new((int)(58 * Globals.Settings.Scale),(int)(34* Globals.Settings.Scale))});
|
||||||
|
|
||||||
|
|
||||||
@ -55,7 +56,7 @@ public class Friend : UserControl, IChannelPick
|
|||||||
UserStatus.Offline or UserStatus.Invisible or _ => Color4.LightGray
|
UserStatus.Offline or UserStatus.Invisible or _ => Color4.LightGray
|
||||||
};
|
};
|
||||||
r = new Rectangle(this.rr.Textures.First()) { Location = new(this.rr.Location.X + 4,this.rr.Location.Y + 4), Size = new(this.rr.Size.X - 8)};
|
r = new Rectangle(this.rr.Textures.First()) { Location = new(this.rr.Location.X + 4,this.rr.Location.Y + 4), Size = new(this.rr.Size.X - 8)};
|
||||||
Texture t = Globals.ms.TextureManager.AddTexture(person.GetAvatar(CancellationToken.None, Globals.Luski.CurrentUser.Servers.First()).Result);
|
Texture t = Globals.ms.TextureManager.AddTexture(person.GetAvatar(CancellationToken.None).Result);
|
||||||
t.Unit = TextureUnit.Texture1;
|
t.Unit = TextureUnit.Texture1;
|
||||||
r.Textures.Add(t);
|
r.Textures.Add(t);
|
||||||
r.Shader = Rectangle.DefaultAlphaTextureShader[Globals.ms.Context];
|
r.Shader = Rectangle.DefaultAlphaTextureShader[Globals.ms.Context];
|
||||||
|
@ -6,7 +6,9 @@ using GraphicsManager.Objects;
|
|||||||
using GraphicsManager.Objects.Core;
|
using GraphicsManager.Objects.Core;
|
||||||
using Luski.net;
|
using Luski.net;
|
||||||
using Luski.net.Enums;
|
using Luski.net.Enums;
|
||||||
|
using Luski.net.Enums.Main;
|
||||||
using Luski.net.JsonTypes;
|
using Luski.net.JsonTypes;
|
||||||
|
using Luski.net.Structures.Main;
|
||||||
using OpenTK.Graphics.OpenGL4;
|
using OpenTK.Graphics.OpenGL4;
|
||||||
using OpenTK.Mathematics;
|
using OpenTK.Mathematics;
|
||||||
|
|
||||||
@ -15,10 +17,10 @@ namespace Luski.GUI.MainScreen.UI;
|
|||||||
public class FriendRequest : UserControl
|
public class FriendRequest : UserControl
|
||||||
{
|
{
|
||||||
private MainScreen Screen;
|
private MainScreen Screen;
|
||||||
public SocketRemoteUser User;
|
public MainSocketRemoteUser User;
|
||||||
public Rectangle? Accept, Reject;
|
public Rectangle? Accept, Reject;
|
||||||
|
|
||||||
public FriendRequest(MainScreen Parent, SocketRemoteUser User)
|
public FriendRequest(MainScreen Parent, MainSocketRemoteUser User)
|
||||||
{
|
{
|
||||||
this.User = User;
|
this.User = User;
|
||||||
this.Screen = Parent;
|
this.Screen = Parent;
|
||||||
@ -32,11 +34,11 @@ public class FriendRequest : UserControl
|
|||||||
Size = new ((int)(42 * Globals.Settings.Scale))
|
Size = new ((int)(42 * Globals.Settings.Scale))
|
||||||
});
|
});
|
||||||
rr.BackgroundColor = BackgroundColor;
|
rr.BackgroundColor = BackgroundColor;
|
||||||
Texture t = Globals.ms.TextureManager.AddTexture(User.GetAvatar(CancellationToken.None, Globals.Luski.CurrentUser.Servers.First()).Result);
|
Texture t = Globals.ms.TextureManager.AddTexture(User.GetAvatar(CancellationToken.None).Result);
|
||||||
t.Unit = TextureUnit.Texture1;
|
t.Unit = TextureUnit.Texture1;
|
||||||
rr.Textures.Add(t);
|
rr.Textures.Add(t);
|
||||||
rr.Shader = Rectangle.DefaultAlphaTextureShader[Globals.ms.Context];
|
rr.Shader = Rectangle.DefaultAlphaTextureShader[Globals.ms.Context];
|
||||||
Controls.Add(new Label() { Font = Globals.DefaultFont, Text = User.Username, Location = new((int)(50 * Globals.Settings.Scale),(int)(14 * Globals.Settings.Scale))});
|
Controls.Add(new Label() { Font = Globals.DefaultFont, Text = User.DisplayName, Location = new((int)(50 * Globals.Settings.Scale),(int)(14 * Globals.Settings.Scale))});
|
||||||
Controls.Add(new Label() { Font = Globals.DefaultFont, Text = User.FriendStatus.ToString(), Location = new((int)(50 * Globals.Settings.Scale),(int)(32 * Globals.Settings.Scale))});
|
Controls.Add(new Label() { Font = Globals.DefaultFont, Text = User.FriendStatus.ToString(), Location = new((int)(50 * Globals.Settings.Scale),(int)(32 * Globals.Settings.Scale))});
|
||||||
if (User.FriendStatus == FriendStatus.PendingIn)
|
if (User.FriendStatus == FriendStatus.PendingIn)
|
||||||
{
|
{
|
||||||
@ -57,14 +59,14 @@ public class FriendRequest : UserControl
|
|||||||
|
|
||||||
private Task RejectOnClicked(IRenderObject arg)
|
private Task RejectOnClicked(IRenderObject arg)
|
||||||
{
|
{
|
||||||
_ = Globals.Luski.SendFriendResult(User.Id, false, CancellationToken.None).Result;
|
//_ = Globals.Luski.SendFriendResult(User.Id, false, CancellationToken.None).Result;
|
||||||
Screen.RemoveFriendRequest(User);
|
Screen.RemoveFriendRequest(User);
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task AcceptOnClicked(IRenderObject arg)
|
private Task AcceptOnClicked(IRenderObject arg)
|
||||||
{
|
{
|
||||||
Screen.AddFriend(Globals.Luski.SendFriendResult(User.Id, true, CancellationToken.None).Result);
|
//Screen.AddFriend(Globals.Luski.SendFriendResult(User.Id, true, CancellationToken.None).Result);
|
||||||
Screen.RemoveFriendRequest(User);
|
Screen.RemoveFriendRequest(User);
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,8 @@ using GraphicsManager;
|
|||||||
using GraphicsManager.Interfaces;
|
using GraphicsManager.Interfaces;
|
||||||
using GraphicsManager.Objects;
|
using GraphicsManager.Objects;
|
||||||
using GraphicsManager.Objects.Core;
|
using GraphicsManager.Objects.Core;
|
||||||
using Luski.net.JsonTypes;
|
|
||||||
using Luski.GUI.MainScreen.Interfaces;
|
using Luski.GUI.MainScreen.Interfaces;
|
||||||
|
using Luski.net.Structures.Main;
|
||||||
using OpenTK.Graphics.OpenGL4;
|
using OpenTK.Graphics.OpenGL4;
|
||||||
using OpenTK.Mathematics;
|
using OpenTK.Mathematics;
|
||||||
|
|
||||||
@ -12,9 +12,9 @@ namespace Luski.GUI.MainScreen.UI;
|
|||||||
|
|
||||||
public class Group : UserControl, IChannelPick
|
public class Group : UserControl, IChannelPick
|
||||||
{
|
{
|
||||||
public SocketTextChannel Channel { get; set; }
|
public MainSocketTextChannel Channel { get; set; }
|
||||||
// private string members = "";
|
// private string members = "";
|
||||||
public Group(SocketGroupChannel chan)
|
public Group(MainSocketGroupChannel chan)
|
||||||
{
|
{
|
||||||
Label Status, Username;
|
Label Status, Username;
|
||||||
Rectangle r, rr;
|
Rectangle r, rr;
|
||||||
|
@ -15,7 +15,7 @@ namespace Luski.GUI.StartPage.UI;
|
|||||||
public class CreateAccount : UserControl
|
public class CreateAccount : UserControl
|
||||||
{
|
{
|
||||||
private RoundedButton button;
|
private RoundedButton button;
|
||||||
private Textbox Password, Email, Username;
|
private Textbox Password, UsernameTextbox, DisplaynameTextBox;
|
||||||
private Rectangle rec;
|
private Rectangle rec;
|
||||||
private string? pfp;
|
private string? pfp;
|
||||||
|
|
||||||
@ -30,23 +30,23 @@ public class CreateAccount : UserControl
|
|||||||
Controls.Add(t=new Label() { Scale = 1.6f * (float)Globals.Settings.Scale, Font = Globals.DefaultFont, Location = new((int)(199*Globals.Settings.Scale)), Text = "Luski", Color = new(243, 119, 53, 255) });
|
Controls.Add(t=new Label() { Scale = 1.6f * (float)Globals.Settings.Scale, Font = Globals.DefaultFont, Location = new((int)(199*Globals.Settings.Scale)), Text = "Luski", Color = new(243, 119, 53, 255) });
|
||||||
t.Location = new((Size.X / 2) - (t.Size.X / 2), t.Location.Y);
|
t.Location = new((Size.X / 2) - (t.Size.X / 2), t.Location.Y);
|
||||||
tt.Location = new((Size.X / 2) - (tt.Size.X / 2), tt.Location.Y);
|
tt.Location = new((Size.X / 2) - (tt.Size.X / 2), tt.Location.Y);
|
||||||
Controls.Add(Email = new Textbox() { TextLocation = TextLocation.TrueCenterLeft, WatermarkFont = Globals.DefaultFont, WatermarkText = "Email", Font = Globals.DefaultFont, Location = new((int)(27 * Globals.Settings.Scale),(int)(280 * Globals.Settings.Scale)), Size = new((int)(261 * Globals.Settings.Scale),(int)(27 * Globals.Settings.Scale)), InsideColor = new(28,28,28,255), BorderColor = Color4.DarkCyan });
|
Controls.Add(UsernameTextbox = new Textbox() { TextLocation = TextLocation.TrueCenterLeft, WatermarkFont = Globals.DefaultFont, WatermarkText = "Username", Font = Globals.DefaultFont, Location = new((int)(27 * Globals.Settings.Scale),(int)(280 * Globals.Settings.Scale)), Size = new((int)(261 * Globals.Settings.Scale),(int)(27 * Globals.Settings.Scale)), InsideColor = new(28,28,28,255), BorderColor = Color4.DarkCyan });
|
||||||
Controls.Add(Password = new Textbox() { TextLocation = TextLocation.TrueCenterLeft, WatermarkFont = Globals.DefaultFont, WatermarkText = "Password", Font = Globals.DefaultFont, PasswordChar = '●', Location = new(Email.Location.X,(int)(346 * Globals.Settings.Scale)), Size = new(Email.Size.X, Email.Location.X), InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan });
|
Controls.Add(Password = new Textbox() { TextLocation = TextLocation.TrueCenterLeft, WatermarkFont = Globals.DefaultFont, WatermarkText = "Password", Font = Globals.DefaultFont, PasswordChar = '●', Location = new(UsernameTextbox.Location.X,(int)(346 * Globals.Settings.Scale)), Size = new(UsernameTextbox.Size.X, UsernameTextbox.Location.X), InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan });
|
||||||
Controls.Add(Username = new Textbox() { TextLocation = TextLocation.TrueCenterLeft, WatermarkFont = Globals.DefaultFont, WatermarkText = "Username", Font = Globals.DefaultFont, Location = new(Email.Location.X,(int)(400 * Globals.Settings.Scale)), Size = new((int)(196 * Globals.Settings.Scale), Email.Location.X), InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan });
|
Controls.Add(DisplaynameTextBox = new Textbox() { TextLocation = TextLocation.TrueCenterLeft, WatermarkFont = Globals.DefaultFont, WatermarkText = "Displayname", Font = Globals.DefaultFont, Location = new(UsernameTextbox.Location.X,(int)(400 * Globals.Settings.Scale)), Size = new((int)(196 * Globals.Settings.Scale), UsernameTextbox.Location.X), InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan });
|
||||||
Controls.Add(button = new() { Font = Globals.DefaultFont, Text = "Create Account", Location = new(Email.Location.X, (int)(456 * Globals.Settings.Scale)), Size = new(Email.Size.X, (int)(46 * Globals.Settings.Scale)), InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan });
|
Controls.Add(button = new() { Font = Globals.DefaultFont, Text = "Create Account", Location = new(UsernameTextbox.Location.X, (int)(456 * Globals.Settings.Scale)), Size = new(UsernameTextbox.Size.X, (int)(46 * Globals.Settings.Scale)), InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan });
|
||||||
Controls.Add(rec = new Rectangle(){ Location = new((int)(228 * Globals.Settings.Scale), (int)(384 * Globals.Settings.Scale)), Size = new((int)(50 * Globals.Settings.Scale)), BackgroundColor = Color4.Red});
|
Controls.Add(rec = new Rectangle(){ Location = new((int)(228 * Globals.Settings.Scale), (int)(384 * Globals.Settings.Scale)), Size = new((int)(50 * Globals.Settings.Scale)), BackgroundColor = Color4.Red});
|
||||||
Password.KeyPress += PasswordOnKeyPress;
|
Password.KeyPress += PasswordOnKeyPress;
|
||||||
Email.KeyPress += EmailOnKeyPress;
|
UsernameTextbox.KeyPress += UsernameTextboxOnKeyPress;
|
||||||
button.Clicked += ButtonOnClicked;
|
button.Clicked += ButtonOnClicked;
|
||||||
Username.KeyPress += UsernameOnKeyPress;
|
DisplaynameTextBox.KeyPress += DisplaynameTextBoxOnKeyPress;
|
||||||
rec.FilesDroped += RecOnFilesDroped;
|
rec.FilesDroped += RecOnFilesDroped;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task UsernameOnKeyPress(KeyboardKeyEventArgs arg)
|
private Task DisplaynameTextBoxOnKeyPress(KeyboardKeyEventArgs arg)
|
||||||
{
|
{
|
||||||
if (arg.Key != Keys.Enter && arg.Key != Keys.KeyPadEnter && arg.Key != Keys.Tab) return Task.CompletedTask;
|
if (arg.Key != Keys.Enter && arg.Key != Keys.KeyPadEnter && arg.Key != Keys.Tab) return Task.CompletedTask;
|
||||||
if (arg.Key == Keys.Tab && arg.Shift) { Password.Focus(); return Task.CompletedTask; }
|
if (arg.Key == Keys.Tab && arg.Shift) { Password.Focus(); return Task.CompletedTask; }
|
||||||
if (arg.Key == Keys.Enter || arg.Key == Keys.KeyPadEnter) ButtonOnClicked(Username);
|
if (arg.Key == Keys.Enter || arg.Key == Keys.KeyPadEnter) ButtonOnClicked(DisplaynameTextBox);
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ public class CreateAccount : UserControl
|
|||||||
}
|
}
|
||||||
|
|
||||||
private bool tab;
|
private bool tab;
|
||||||
private Task EmailOnKeyPress(KeyboardKeyEventArgs arg)
|
private Task UsernameTextboxOnKeyPress(KeyboardKeyEventArgs arg)
|
||||||
{
|
{
|
||||||
if (arg.Key != Keys.Tab) return Task.CompletedTask;
|
if (arg.Key != Keys.Tab) return Task.CompletedTask;
|
||||||
if (arg.Key == Keys.Tab){ Password.Focus(); tab = true;}
|
if (arg.Key == Keys.Tab){ Password.Focus(); tab = true;}
|
||||||
@ -94,8 +94,8 @@ public class CreateAccount : UserControl
|
|||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
};
|
};
|
||||||
if (arg.Key != Keys.Enter && arg.Key != Keys.KeyPadEnter && arg.Key != Keys.Tab) return Task.CompletedTask;
|
if (arg.Key != Keys.Enter && arg.Key != Keys.KeyPadEnter && arg.Key != Keys.Tab) return Task.CompletedTask;
|
||||||
if (arg.Key == Keys.Tab && arg.Shift) { Email.Focus(); return Task.CompletedTask; }
|
if (arg.Key == Keys.Tab && arg.Shift) { UsernameTextbox.Focus(); return Task.CompletedTask; }
|
||||||
if (arg.Key == Keys.Tab ){ Username.Focus(); return Task.CompletedTask; }
|
if (arg.Key == Keys.Tab ){ DisplaynameTextBox.Focus(); return Task.CompletedTask; }
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,13 +105,13 @@ public class CreateAccount : UserControl
|
|||||||
{
|
{
|
||||||
string[] arr = new string[]
|
string[] arr = new string[]
|
||||||
{
|
{
|
||||||
Email.Text,
|
UsernameTextbox.Text,
|
||||||
Password.Text,
|
Password.Text,
|
||||||
Username.Text,
|
DisplaynameTextBox.Text,
|
||||||
pfp!
|
pfp!
|
||||||
};
|
};
|
||||||
if (arr.Any(s => string.IsNullOrEmpty(s))) return Task.CompletedTask;
|
if (arr.Any(s => string.IsNullOrEmpty(s))) return Task.CompletedTask;
|
||||||
Globals.Luski = Server.CreateAccount(Email.Text, Password.Text, Username.Text, pfp!, CancellationToken.None, Globals.UpdaterSettings.Branch);
|
Globals.Luski.MainServer.CreateAccount(UsernameTextbox.Text, Password.Text, DisplaynameTextBox.Text, pfp!, CancellationToken.None);
|
||||||
ChangeToApp!.Invoke();
|
ChangeToApp!.Invoke();
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
@ -11,7 +11,7 @@ namespace Luski.GUI.StartPage.UI;
|
|||||||
public class Login : UserControl
|
public class Login : UserControl
|
||||||
{
|
{
|
||||||
private RoundedButton button;
|
private RoundedButton button;
|
||||||
private Textbox Password, Email;
|
private Textbox Password, UsernameTextbox;
|
||||||
private Label ca;
|
private Label ca;
|
||||||
public event Func<Task>? ChangeToApp;
|
public event Func<Task>? ChangeToApp;
|
||||||
public event Func<Task>? ChangeToCa;
|
public event Func<Task>? ChangeToCa;
|
||||||
@ -24,12 +24,12 @@ public class Login : UserControl
|
|||||||
Controls.Add(t=new Label() { Scale = 1.6f, Font = Globals.DefaultFont, Location = new((int)(199*Globals.Settings.Scale)), Text = "Luski", Color = new(243, 119, 53, 255) });
|
Controls.Add(t=new Label() { Scale = 1.6f, Font = Globals.DefaultFont, Location = new((int)(199*Globals.Settings.Scale)), Text = "Luski", Color = new(243, 119, 53, 255) });
|
||||||
t.Location = new((Size.X / 2) - (t.Size.X / 2), t.Location.Y);
|
t.Location = new((Size.X / 2) - (t.Size.X / 2), t.Location.Y);
|
||||||
tt.Location = new((Size.X / 2) - (tt.Size.X / 2), tt.Location.Y);
|
tt.Location = new((Size.X / 2) - (tt.Size.X / 2), tt.Location.Y);
|
||||||
Controls.Add(Email = new Textbox() { TextLocation = TextLocation.TrueCenterLeft, WatermarkFont = Globals.DefaultFont, WatermarkText = "Email", Font = Globals.DefaultFont, Location = new((int)(27*Globals.Settings.Scale),(int)(280 * Globals.Settings.Scale)), Size = new((int)(261 * Globals.Settings.Scale),(int)(27 * Globals.Settings.Scale)), InsideColor = new(28,28,28,255), BorderColor = Color4.DarkCyan });
|
Controls.Add(UsernameTextbox = new Textbox() { TextLocation = TextLocation.TrueCenterLeft, WatermarkFont = Globals.DefaultFont, WatermarkText = "Username", Font = Globals.DefaultFont, Location = new((int)(27*Globals.Settings.Scale),(int)(280 * Globals.Settings.Scale)), Size = new((int)(261 * Globals.Settings.Scale),(int)(27 * Globals.Settings.Scale)), InsideColor = new(28,28,28,255), BorderColor = Color4.DarkCyan });
|
||||||
Controls.Add(Password = new Textbox() { TextLocation = TextLocation.TrueCenterLeft, WatermarkFont = Globals.DefaultFont, WatermarkText = "Password", Font = Globals.DefaultFont, PasswordChar = '●', Location = new(Email.Location.X,(int)(365 * Globals.Settings.Scale)), Size = Email.Size, InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan });
|
Controls.Add(Password = new Textbox() { TextLocation = TextLocation.TrueCenterLeft, WatermarkFont = Globals.DefaultFont, WatermarkText = "Password", Font = Globals.DefaultFont, PasswordChar = '●', Location = new(UsernameTextbox.Location.X,(int)(365 * Globals.Settings.Scale)), Size = UsernameTextbox.Size, InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan });
|
||||||
Controls.Add(ca = new Label() { Font = Globals.DefaultFont, Location = new(Email.Location.X,(int)(419 * Globals.Settings.Scale)), Text = "Create Account" });
|
Controls.Add(ca = new Label() { Font = Globals.DefaultFont, Location = new(UsernameTextbox.Location.X,(int)(419 * Globals.Settings.Scale)), Text = "Create Account" });
|
||||||
Controls.Add(button = new() { Font = Globals.DefaultFont, Text = "Login", Location = new(Email.Location.X, (int)(455 * Globals.Settings.Scale)), Size = new(Email.Size.X,(int)(46 * Globals.Settings.Scale)), InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan });
|
Controls.Add(button = new() { Font = Globals.DefaultFont, Text = "Login", Location = new(UsernameTextbox.Location.X, (int)(455 * Globals.Settings.Scale)), Size = new(UsernameTextbox.Size.X,(int)(46 * Globals.Settings.Scale)), InsideColor = new(28, 28, 28, 255), BorderColor = Color4.DarkCyan });
|
||||||
Password.KeyPress += PasswordOnKeyPress;
|
Password.KeyPress += PasswordOnKeyPress;
|
||||||
Email.KeyPress += EmailOnKeyPress;
|
UsernameTextbox.KeyPress += UsernameTextboxOnKeyPress;
|
||||||
button.Clicked += ButtonOnClicked;
|
button.Clicked += ButtonOnClicked;
|
||||||
ca.Clicked += CaOnClicked;
|
ca.Clicked += CaOnClicked;
|
||||||
this.WindowLoaded += OnWindowLoaded;
|
this.WindowLoaded += OnWindowLoaded;
|
||||||
@ -37,7 +37,7 @@ public class Login : UserControl
|
|||||||
|
|
||||||
private Task OnWindowLoaded(IRenderObject arg)
|
private Task OnWindowLoaded(IRenderObject arg)
|
||||||
{
|
{
|
||||||
Email.Focus();
|
UsernameTextbox.Focus();
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ public class Login : UserControl
|
|||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task EmailOnKeyPress(KeyboardKeyEventArgs arg)
|
private Task UsernameTextboxOnKeyPress(KeyboardKeyEventArgs arg)
|
||||||
{
|
{
|
||||||
if (arg.Key != Keys.Tab) return Task.CompletedTask;
|
if (arg.Key != Keys.Tab) return Task.CompletedTask;
|
||||||
Password.Focus();
|
Password.Focus();
|
||||||
@ -57,7 +57,7 @@ public class Login : UserControl
|
|||||||
private Task PasswordOnKeyPress(KeyboardKeyEventArgs arg)
|
private Task PasswordOnKeyPress(KeyboardKeyEventArgs arg)
|
||||||
{
|
{
|
||||||
if (arg.Key != Keys.Enter && arg.Key != Keys.KeyPadEnter && arg.Key != Keys.Tab) return Task.CompletedTask;
|
if (arg.Key != Keys.Enter && arg.Key != Keys.KeyPadEnter && arg.Key != Keys.Tab) return Task.CompletedTask;
|
||||||
if (arg.Key == Keys.Tab && arg.Shift) Email.Focus();
|
if (arg.Key == Keys.Tab && arg.Shift) UsernameTextbox.Focus();
|
||||||
if (arg.Key != Keys.Tab ) ButtonOnClicked(Password);
|
if (arg.Key != Keys.Tab ) ButtonOnClicked(Password);
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@ -66,7 +66,7 @@ public class Login : UserControl
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Globals.Luski = Server.Login(Email.Text, Password.Text, CancellationToken.None, Globals.UpdaterSettings.Branch).Result;
|
Globals.Luski.MainServer.Login(UsernameTextbox.Text, Password.Text, CancellationToken.None);
|
||||||
ChangeToApp!.Invoke();
|
ChangeToApp!.Invoke();
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@ -75,7 +75,7 @@ public class Login : UserControl
|
|||||||
{
|
{
|
||||||
BlockDraw = true;
|
BlockDraw = true;
|
||||||
Password.BorderColor = Color4.DarkRed;
|
Password.BorderColor = Color4.DarkRed;
|
||||||
Email.BorderColor = Color4.DarkRed;
|
UsernameTextbox.BorderColor = Color4.DarkRed;
|
||||||
BlockDraw = false;
|
BlockDraw = false;
|
||||||
TryDraw();
|
TryDraw();
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ using GraphicsManager;
|
|||||||
using GraphicsManager.Enums;
|
using GraphicsManager.Enums;
|
||||||
using Luski.GUI.MainScreen.Interfaces;
|
using Luski.GUI.MainScreen.Interfaces;
|
||||||
using Luski.GUI.MainScreen.UI;
|
using Luski.GUI.MainScreen.UI;
|
||||||
using Luski.net.JsonTypes;
|
using Luski.net.Structures.Main;
|
||||||
using OpenTK.Windowing.Common;
|
using OpenTK.Windowing.Common;
|
||||||
using OpenTK.Windowing.Desktop;
|
using OpenTK.Windowing.Desktop;
|
||||||
|
|
||||||
@ -33,9 +33,9 @@ public class ChatWindow : Window
|
|||||||
Anchor = ObjectAnchor.All
|
Anchor = ObjectAnchor.All
|
||||||
});
|
});
|
||||||
c.UpdateTitle(pick);
|
c.UpdateTitle(pick);
|
||||||
IReadOnlyList<SocketMessage> messages = pick.Channel.GetMessages(CancellationToken.None, Globals.Settings.LoadPerChannel).Result;
|
IReadOnlyList<MainSocketMessage> messages = pick.Channel.GetMessages(CancellationToken.None, Globals.Settings.LoadPerChannel).Result;
|
||||||
|
|
||||||
foreach (SocketMessage message in messages.Reverse())
|
foreach (MainSocketMessage message in messages.Reverse())
|
||||||
{
|
{
|
||||||
c!.AddMessage(TextureManager, message);
|
c!.AddMessage(TextureManager, message);
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ public class Globals
|
|||||||
{
|
{
|
||||||
#pragma warning disable CS8618
|
#pragma warning disable CS8618
|
||||||
public static bool Download { get; set; } = false;
|
public static bool Download { get; set; } = false;
|
||||||
public static Server Luski { get; set; } = null!;
|
public static API Luski { get; } = new();
|
||||||
public static MainScreen ms;
|
public static MainScreen ms;
|
||||||
|
|
||||||
public static Settings Settings { get; set; }
|
public static Settings Settings { get; set; }
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="GraphicsManager" Version="1.0.5-alpha74" />
|
<PackageReference Include="GraphicsManager" Version="1.0.5-alpha74" />
|
||||||
<PackageReference Include="Luski.net" Version="1.1.3-alpha23" />
|
<PackageReference Include="Luski.net" Version="1.1.3-alpha25" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -11,6 +11,10 @@ using Image = OpenTK.Windowing.Common.Input.Image;
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
Globals.Settings = Globals.GetSettings(Path.Combine(Globals.LuskiPath, "Settings.json"), SettingsContext.Default.Settings);
|
Globals.Settings = Globals.GetSettings(Path.Combine(Globals.LuskiPath, "Settings.json"), SettingsContext.Default.Settings);
|
||||||
|
_ = Globals.Luski.GetMainServer(Globals.Settings.Domain, Globals.Settings.Version);
|
||||||
|
_ = Globals.Luski.GetPublicServer("TCLL.Luski.JacobTech.com", Globals.Settings.Version);
|
||||||
|
Console.WriteLine("Conecting to main server '{0}' using API {1}", Globals.Luski.MainServer.Domain, Globals.Luski.MainServer.ApiVersion);
|
||||||
|
Console.WriteLine("Conecting to public server '{0}' using API {1}", Globals.Luski.LoadedServers.First().Domain, Globals.Luski.LoadedServers.First().ApiVersion);
|
||||||
Globals.UpdaterSettings = Globals.GetSettings(Path.Combine(Globals.LuskiPath, "UpdaterSettings.json"), UpdaterSettingsContext.Default.UpdaterSettings);
|
Globals.UpdaterSettings = Globals.GetSettings(Path.Combine(Globals.LuskiPath, "UpdaterSettings.json"), UpdaterSettingsContext.Default.UpdaterSettings);
|
||||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||||
Stream? resource_stream = assembly.GetManifestResourceStream($"Luski.Resources.Textures.Luski.png");
|
Stream? resource_stream = assembly.GetManifestResourceStream($"Luski.Resources.Textures.Luski.png");
|
||||||
@ -18,7 +22,6 @@ try
|
|||||||
resource_stream?.CopyTo(ms);
|
resource_stream?.CopyTo(ms);
|
||||||
var Logo = SixLabors.ImageSharp.Image.Load<Rgba32>(ms.ToArray());
|
var Logo = SixLabors.ImageSharp.Image.Load<Rgba32>(ms.ToArray());
|
||||||
|
|
||||||
//List<byte> pixels = new List<byte>(4 * Logo.Width * Logo.Height);
|
|
||||||
Span<byte> pixels = new byte[4 * Logo.Width * Logo.Height].AsSpan();
|
Span<byte> pixels = new byte[4 * Logo.Width * Logo.Height].AsSpan();
|
||||||
Logo.CopyPixelDataTo(pixels);
|
Logo.CopyPixelDataTo(pixels);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user