Interface.cs (ChatMessageReceived and SendChatMessage added). Small changes

This commit is contained in:
EntenKoeniq
2021-09-27 20:28:27 +02:00
parent 09b7860807
commit 6479d92460
4 changed files with 30 additions and 8 deletions

View File

@ -1,4 +1,6 @@
using Lidgren.Network;
using System.ComponentModel;
using Lidgren.Network;
namespace CoopClient
{
@ -7,12 +9,14 @@ namespace CoopClient
#region DELEGATES
public delegate void ConnectEvent(bool connected, string bye_message = null);
public delegate void MessageEvent(NetIncomingMessage message);
public delegate void ChatMessage(string from, string message, CancelEventArgs args);
#endregion
#region EVENTS
public static event ConnectEvent OnConnected;
public static event ConnectEvent OnDisconnected;
public static event MessageEvent OnMessage;
public static event ChatMessage OnChatMessage;
public static void Connected()
{
@ -28,8 +32,20 @@ namespace CoopClient
{
OnMessage?.Invoke(message);
}
public static bool ChatMessageReceived(string from, string message)
{
CancelEventArgs args = new CancelEventArgs(false);
OnChatMessage?.Invoke(from, message, args);
return args.Cancel;
}
#endregion
public static void SendChatMessage(string from, string message)
{
Main.MainChat.AddMessage(from, message);
}
public static void Connect(string serverAddress)
{
Main.MainNetworking.DisConnectFromServer(serverAddress);

View File

@ -9,21 +9,24 @@ namespace CoopClient.Menus
{
public ObjectPool MenuPool = new ObjectPool();
public NativeMenu MainMenu = new NativeMenu("GTACOOP:R", Main.CurrentModVersion.Replace("_", "."))
public NativeMenu MainMenu = new NativeMenu("GTACOOP:R", "MAIN")
{
UseMouse = false,
Alignment = Main.MainSettings.FlipMenu ? GTA.UI.Alignment.Right : GTA.UI.Alignment.Left
};
#region ===== SUB =====
#region SUB
public Sub.Settings SubSettings = new Sub.Settings();
#endregion
#region ===== ITEMS =====
#region ITEMS
private readonly NativeItem UsernameItem = new NativeItem("Username") { AltTitle = Main.MainSettings.Username };
private readonly NativeItem ServerIpItem = new NativeItem("Server IP") { AltTitle = Main.MainSettings.LastServerAddress };
private readonly NativeItem ServerConnectItem = new NativeItem("Connect");
private readonly NativeItem AboutItem = new NativeItem("About", "~g~GTACOOP~s~:~b~R ~s~by EntenKoeniq") { LeftBadge = new LemonUI.Elements.ScaledTexture("commonmenu", "shop_new_star") };
#endregion // !ITEMS
private readonly NativeItem AboutItem = new NativeItem("About", "~y~SOURCE~s~~n~" +
"https://github.com/GTACOOP-R~n~" +
"~y~VERSION~s~~n~" +
Main.CurrentModVersion.Replace("_", ".")) { LeftBadge = new LemonUI.Elements.ScaledTexture("commonmenu", "shop_new_star") };
#endregion
public MenusMain()
{

View File

@ -213,7 +213,10 @@ namespace CoopClient
packet.NetIncomingMessageToPacket(message);
ChatMessagePacket chatMessagePacket = (ChatMessagePacket)packet;
Main.MainChat.AddMessage(chatMessagePacket.Username, chatMessagePacket.Message);
if (!Interface.ChatMessageReceived(chatMessagePacket.Username, chatMessagePacket.Message))
{
Interface.SendChatMessage(chatMessagePacket.Username, chatMessagePacket.Message);
}
break;
case (byte)PacketTypes.NativeCallPacket:
packet = new NativeCallPacket();

View File

@ -43,7 +43,7 @@ namespace CoopServer
internal bool InvokeChatMessage(string username, string message)
{
var args = new CancelEventArgs(false);
CancelEventArgs args = new(false);
OnChatMessage?.Invoke(username, message, args);
return args.Cancel;
}