dev #17

Merged
JacobTech merged 29 commits from dev into main 2024-04-11 15:50:14 -04:00
17 changed files with 128 additions and 117 deletions
Showing only changes of commit d8657d103d - Show all commits

View File

@ -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]

View File

@ -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")]

View File

@ -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(() =>

View File

@ -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; }
} }

View File

@ -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;
} }
} }

View File

@ -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)

View File

@ -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()
{ {

View File

@ -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;

View File

@ -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];

View File

@ -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;
} }

View File

@ -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;

View File

@ -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)

View File

@ -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();
} }

View File

@ -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);
} }

View File

@ -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; }

View File

@ -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>

View File

@ -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);